Workflow for TS EAS standards revision in GitHub - SAA-SDT/TS-EAS-subteam-notes GitHub Wiki

Introduction

GitHub is not necessarily a tool known for doing project management, GitHub is primarily a tool known for code management. Therefore we might need to set up a workflow that shows more easily where we are with things in the revision process.

GitHub

GitHub branches are used for working with updates without publishing them to the master branch before everything is ready and agreed upon. https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-branches

GitHub milestones are used for tracking the progress with issues and pull requests. https://help.github.com/en/github/managing-your-work-on-github/about-milestones

Milestones

A milestone for the revision should be set up and all the issues being part of the revision are to be associated with the milestone.

Branches

Master

The “default” branch which is hosting the current version of the code (or TL). Before an update to master is made the current master branch gets archived with the help of releases and tags indicating which release it is. See https://github.com/DILCISBoard/E-ARK-CSIP/releases and https://github.com/DILCISBoard/E-ARK-CSIP/tags which we are using as our guiding method.

Naming convention is that master is always named master and is the current version.

Revision branches

For the revision itself there are a number of branches (needed in each of the different repositories hosting the different kinds of code) which will host all the changes going into the revision and in the final end into the master branch. All work is performed in a editors own branch for each issue the editor is working on which in their turn is sent as a “pull request” (PR) to the revision branch when the change is ready. These PR’s are as small as possible to make the review of them easy to perform. Note that nothing is accepted to the revision branches without a review.

Schema revision branch

Work is carried out in the Schema repository by the Schema Team.

The schema will need one branch where all the changes are made leaving the master branch untouched. Work is carried out in editor branches and submitted as small PR’s as possible to make review easy. Work with the schemas is performed by the schema team, review is carried out by designated members of the standards revision team.

TL code revision branch

Work is carried out in the TL repository by the Schema Team.

The TL needs some updates in the transformations and these will be performed in their own branch to be able to test the changes thoroughly before they are moved into production in the master branch. This work is carried out internally in the schema team by members designated to work with the transformations of the TL with XSL-FO to the pdf version and XSLT to html version and also uses reviews of PR to the revision branch in the work by a for the task appointed member of the schema team.

TL text revision branch

Work is carried out in the TL repository by the EAC-CPF/EAD/XXX Team TL Editors.

The text edits of the TL are placed in its own revision branch. The TL editors are designated members of the standards revision team. All editorial work is carried out in the editors’ own branches and submitted to the revision branch in as small PR’s as possible to make the review easy by the designated TL review team. The recommendation is to have each element or attribute change in its own branch facilitating an easy path of making PR’s to the revision branch.

Pull requests

PR’s are made to the relevant repository by the coder or editor. Review is carried out by designated schema team members and/or designated EAC-CPF/EAD/XXX Team member.

The changes made are submitted through a pull request (PR) https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests to the revision branch in question. The PR’s are as small as possible and a setting in the repository is made so no PR can be made without a review. This allows us to make sure all text and code is checked before it is placed in the revision branch. The revision branches of schema and TL are what we submit to the standards committee.

Each pull request uses keywords to when the PR’s is accepted into the revision branch to close the issue it is associated with. https://help.github.com/en/github/managing-your-work-on-github/linking-a-pull-request-to-an-issue

Workflow [To be discues if the need is a need]

There are more than one way to get a Kanban like workflow if wanted.

GitHub

GitHub has added its own project management application being Kanban like.

https://help.github.com/en/github/managing-your-work-on-github/about-project-boards

Workflow

Project boards are made up of issues, pull requests, and notes that are categorized as cards in columns of your choosing. You can drag and drop or use keyboard shortcuts to reorder cards within a column, move cards from column to column, and change the order of columns.

Project board cards contain relevant metadata for issues and pull requests, like labels, assignees, the status, and who opened it. You can view and make lightweight edits to issues and pull requests within your project board by clicking on the issue or pull request's title.

You can create notes within columns to serve as task reminders, references to issues and pull requests from any repository on GitHub, or to add information related to the project board. You can create a reference card for another project board by adding a link to a note. If the note isn't sufficient for your needs, you can convert it to an issue. For more information on converting project board notes to issues, see "Adding notes to a project board."

Trello

Trello is its own web based application which gives a Kanban like workflow. You need to have an account to access it.

https://trello.com/

Trello is a web based Kanban style list making application which can be connected to GitHub so the Kanban post-its can be connected with the issues and PR’s in GitHub. Users can create their task boards with several columns and move the tasks between them. Typically columns include task statuses: To Do, In Progress, Done. The tool can be for personal and business use. Trello has a variety of work and personal uses including real estate management, software project management, school bulletin boards, lesson planning, accounting, web design, gaming, and law office case management.

How to connect Trello and GitHub

https://blog.trello.com/github-and-trello-integrate-your-commits

⚠️ **GitHub.com Fallback** ⚠️