Skip to content
robnagler edited this page Feb 23, 2022 · 3 revisions

GitHub Issues are used as the primary project management tool within the software group.

Background

We release Sirepo weekly. All branches are merged and deleted with pull requests (PR). We do not support old releases. Therefore, we do not have to deal with "hot fixes" and the like. This allows us to use Issues simply.

Programmers pick an Issue, develop in a branch based on the Issue, get it working (mostly :), create a PR, the PR is merged, alpha is built, and then pushed to beta and prod.

Review

An issue is created. A software team member reviews the issue. Make sure the title makes sense and including any clarifying text in a comment.

Ensure the title describes the Issue well and is not too long. Often users will write something like "A problem with sirepo.com", which is not a good description. Do not prefix the title with a sim code or other category. Use a Label for that.

Labels

At least one label must be added.

Add customer for paying customers or user for anybody not within RadiaSoft. We don't label the issue if it comes from within the team.

Add cebaf, controls, elegant, flash, genesis, jspec, jupyter, madx, ml, nuline, opal, radia, raydata, shadow, silas, srw, synergia, warppba, warpvnd, etc. if it is directly related to a sim code.

Add the following labels as appropriate:

  • devops - modification required to the configuration of the service (sirepo.com or the staging sites).
  • doc - documentation change
  • question - clarification, suggestion, etc.
  • sw - change to the application source.
  • test - something related to testing

If you understand where in the software the problem lies, add one or more of:

  • auth - login, authentication, authorization, roles, etc.
  • lib - sirepo.lib
  • ngui - next generation user interface
  • server - sirepo.server, APIs, and helper modules.
  • simcode - sirepo.template, sim_data, sim_api, etc
  • simdb - simulation_db or the schema.
  • ui - user interface (javascript, css & html)
  • supervisor - job supervisor, agents, and cmd

Milestones

If an issue is associated with a project, assign it to a milestone named after that project. support is used for changes that can't be applied to a particular project.

Current projects (milestones): blicon, fastfelo, flashcap, mpmd, nuline, raydata, webcon

Assignees

Issues which are actively being worked on should be assigned to one or more developers. Otherwise, no one is assigned. This ensures we know who is working on what. An assignee bills the appropriate project (milestone) so a project should never be assigned that doesn't have a milestone.

Pull Requests

These are merged quickly. We should not have a backlog of PRs.

Clone this wiki locally