The Heat-Translator project was born as a novel idea to expand Heat’s ecosystem through support for YAML templates defined in TOSCA. To execute the idea it was made a StackForge project for open contribution and to keep it visible in the community as it grew and built its nest. Over time the project was fostered, grew up, and had to leave the nest. It had to graduate from the StackForge world and move on to the bright lights and big time of OpenStack. Does this sound like the scenario you would like for your projects? If so, keep reading this blog post as I will walk you through the steps that our little project took to graduate from StackForge and go out in to the OpenStack world.

Get approval from the main program

Your project might have started with work that is related to an existing program and with an aim to be part of it eventually or you might have started a project to solve a specific problem and later found out that it fits into a specific program. In either case, you need to convince the program lead and contributors that your StackForge project is mature enough and can add value to an existing program. This can be a smoother process if your StackForge project has remained open and visible to the community. One way to start the discussion is via the projects weekly IRC meeting and later in the mailing list. Follow any suggestions as they come up and if there is no objection then bring it back to the program lead and contributors and call for an approval. Once it is approved you are ready to make changes to move your StackForge project to OpenStack.

Edit the governance file

This is typically a one line change in the reference/programs.yaml file of the OpenStack Governance . Edit the name of your repository in the expected OpenStack main program section (e.g. - repo: openstack/yourprojectname). Make sure that in the commit message you provide a good detail of why you have created this patch. If the subject was discussed in the IRC meeting, provide a link to the meeting minutes. Once these changes are approved, you are ready to move forward to the next step of renaming the StackForge repository to OpenStack.

Modify the official OpenStack projects list and move code repository to the OpenStack

Renaming the code repository is a scheduled process and Infra team needs to know expected renaming up front. Infra team is one of the most active teams on the IRC (#openstack-infra) and pinging on IRC is probably the best way to let them know. Talk to the Infra team and once they tell you to go ahead with changes, make changes as described below.
All of the following files that needs to be modified are part of openstack-infra/project-config

  • gerrit/acls/stackforge/yourprojectname.config: Rename this file to gerrit/acls/openstack/yourprojectname.config
  • gerrit/projects.yaml: Move your project detail under the OpenStack program it is going to be part of. Make sure you rename it from stackforge to openstack. For example, - project: stackforge/yourprojectname to - project: openstack/yourprojectname
  • jenkins/jobs/projects.yaml: Your StackForge project should be listed under the section # Section: Stackforge projects. Move it to the # Section: OpenStack server projects. The projects list is organized alphabetically. Since you are moving to the OpenStack, the documentation should reflect accordingly. Given below is an example snippet of how it may look like once you make changes:
    - project:
        name: yourprojectname
        node: 'bare-precise || bare-trusty'
        tarball-site: tarballs.openstack.org
        doc-publisher-site: docs.openstack.org
        jobs:
          - python-jobs
          - openstack-publish-jobs
          - pypi-jobs
    
  • zuul/layout.yaml: Your StackForge project should be listed under the section # Section: Stackforge projects. Move it to under the # Section: OpenStack server projects. The projects list is organized alphabetically. Since you are moving to the OpenStack, the documentation should reflect accordingly. Given below is an example snippet of how it may look like once you make changes:
    - name: openstack/yourprojectname
      template:
        - name: merge-check
        - name: python-jobs
        - name: python3-jobs
        - name: publish-to-pypi
        - name: openstack-server-publish-jobs
        - name: check-requirements
      post:
        - yourprojectname-coverage
    

Refer to the Repository Creator’s Guide to learn about repositories in depth.

Move Launchpad to OpenStack

You most likely have a Launchpad set up for your StackForge project and if so you should move Launchpad to OpenStack as well. This is not a required step but you should do it as soon as possible. If you don’t, then you will end up with broken link in your patch commit that are pointing to Launchpad blueprints. In your Launchpad, go to the Change detail section and make sure you have openstack in the Part of drop down box. If you haven’t already done in the first place when you created StackForge project, change the branding to reflect OpenStack logo under Change branding section. You do not need any git commit for these changes as all changes are done in the Launchpad itself.

Create IRC channel

This is another optional step but once your project becomes a part of an existing main program with a dedicated contributors team, you may want to create dedicated IRC channel for an easy collaboration. First follow the Channel Requirements instructions. Now make changes in the openstack-infra/project-config files as below:

  • accessbot/channels.yaml: Add your channel in an alphabetical order. For example, - name: yourprojectname
  • gerritbot/channels.yaml: Edit your project detail in an alphabetical order. Following is an example snippet, it may look different depending on your settings:
    openstack-yourprojectname:
        events:
          - patchset-created
          - change-merged
          - x-vrif-minus-2
        projects:
          - openstack/yourprojectname
       branches:
         - master
    

OpenStack is awesome and so is becoming an official part of it. Good Luck!

As a note to this blog post, I would like to thank the members of the Heat and Infra team for their help to me in learning the process. It is through their patience and collaboration with me that we were able to graduate Heat-Translator in to the Heat OpenStack program.

2 comments on"How to move StackForge project to an existing OpenStack Program"

  1. […] Sahdev Zala: How to move StackForge project to an existing OpenStack […]

  2. This is crsyatl clear. Thanks for taking the time!

Join The Discussion

Your email address will not be published. Required fields are marked *