dev:meetings:2011-04-30
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
dev:meetings:2011-04-30 [2011/05/02 16:08] – dumped Asciidoc minutes from dev git meeting dbs | dev:meetings:2011-04-30 [2022/02/10 13:34] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Git / Evergreen development discussion notes ====== | + | ====== Git / Evergreen development discussion notes ====== |
Git tracks commits - includes metadata such as description, | Git tracks commits - includes metadata such as description, | ||
Line 5: | Line 5: | ||
===== Key #1 to workflow ===== | ===== Key #1 to workflow ===== | ||
- | * If git complains about a non-fast-forward update, DO NOT FORCE A COMMIT! | + | * If git complains about a non-fast-forward update, DO NOT FORCE A PUSH! |
- | * *ACTION*: Prevent non-fast-forward updates on main topic branches (branches that have been shared with the world) | + | |
- | * *ACTION*: Adopt naming convention for branches that should not be pulled from | + | |
- | * For example, | + | * For example, |
* lp####### for a branch for a Launchpad bug | * lp####### for a branch for a Launchpad bug | ||
- | * dbs would start with dbs/ | + | * dbs would start with '' |
- | * then backport to dbs/ | + | * then backport to '' |
===== Central repository as collection point ===== | ===== Central repository as collection point ===== | ||
Line 18: | Line 18: | ||
* To set up a new non-main tree generally requires interested party to send the git maintainer a pubkey & email address | * To set up a new non-main tree generally requires interested party to send the git maintainer a pubkey & email address | ||
* We would like to be reasonably open - but must assert that any committed code is a) relevant to Evergreen and b) DCO'ed and licensed under GPL v2-or-later | * We would like to be reasonably open - but must assert that any committed code is a) relevant to Evergreen and b) DCO'ed and licensed under GPL v2-or-later | ||
- | * In the new regime, a committer would be someone who has the ability to push to main / tag | + | * In the new regime, a committer would be someone who has the ability to push to master branch and create tags |
* Possible to give multiple people the ability to push into a single branch (eg. collaborative topic branch like MARC-must-die, | * Possible to give multiple people the ability to push into a single branch (eg. collaborative topic branch like MARC-must-die, | ||
- | * *ACTION*: Galen will manage the git server (at least to begin with) | + | |
- | * *ACTION*: Invite tsbere to join Galen in administering gitolite | + | |
- | * *ACTION*: ILS-Contrib needs to move to central repository (as an ILS-contrib tree) | + | |
===== Workflow - squashing vs. maintaining all the ugly ===== | ===== Workflow - squashing vs. maintaining all the ugly ===== | ||
Line 29: | Line 29: | ||
- Make the patches comprehensible (one logical unit per patch - like a bullet point in a slide) | - Make the patches comprehensible (one logical unit per patch - like a bullet point in a slide) | ||
- Enable the patches to make sense as a series (get rid of the ' | - Enable the patches to make sense as a series (get rid of the ' | ||
- | * One option: *Interactive rebase* at point that QA is satisfied | + | * One option: |
* Please continue to separate whitespace commits from substantive commits | * Please continue to separate whitespace commits from substantive commits | ||
* Get used to the notion of having code sit in the topic branch for some time to be reviewed / tested | * Get used to the notion of having code sit in the topic branch for some time to be reviewed / tested | ||
- | * `tig` is an ncurses-based interface for browsing the commit history | + | * '' |
===== For git-format-patch patches sent to the list / attached to Launchpad ===== | ===== For git-format-patch patches sent to the list / attached to Launchpad ===== | ||
- | * git-format-patch is much nicer as it tracks metadata such as author, etc, rather than having to do it manually | + | * '' |
* Create a local branch | * Create a local branch | ||
- | * Use `git am` to apply the patch | + | * Use '' |
* Test | * Test | ||
* If the patch is perfect, push it to a public branch | * If the patch is perfect, push it to a public branch | ||
* If the patch is 90% good, but needs fixes; commit the patch as-is and commit a follow-up patch to clean it up (this avoids merge conflicts when the patch contributor pulls from master subsequently) | * If the patch is 90% good, but needs fixes; commit the patch as-is and commit a follow-up patch to clean it up (this avoids merge conflicts when the patch contributor pulls from master subsequently) | ||
* Patch wrangler? | * Patch wrangler? | ||
- | * *ACTION*: Follow-up with Chris on git.evergreen-ils.org server | + | |
===== Rough plan ===== | ===== Rough plan ===== | ||
- | - git-svn clone to seed the master repository (OpenSRF and ILS at the same time) | + | |
- | * Bring tags along - but only for SVN tags, not one per revision (git-svn applies a git-svn-id with the revision number) | + | * Bring tags along - but only for SVN tags, not one per revision ('' |
- | - Gather committers' | + | - Gather committers' |
- | - Test repository (go or no go) | + | - Test repository (go or no go) |
- | - Pick a weekend for cutting over (at least a week after release: Galen suggests Saturday, May 14) | + | - Pick a weekend for cutting over (at least a week after release: Galen suggests Saturday, May 14) |
===== Things that need to be done: ===== | ===== Things that need to be done: ===== | ||
- | * Modify Web site references to SVN | + | |
- | * Contributing document (update references, git-format-patch) | + | * Contributing document (update references, git-format-patch) |
- | * Policies for being added to the repo server | + | * Policies for being added to the repo server |
- | * Suggested naming conventions | + | * Suggested naming conventions |
- | * Statement on Evergreen interpretation of Signed-off-by | + | * Statement on Evergreen interpretation of Signed-off-by |
- | * Wiki references to SVN | + | * Wiki references to SVN **UPDATE 2011-05-14: major references updated; still a number of minor references to clean up** |
- | * Check codebase for SVN references (such as staff client installer auto build ID) | + | * Check codebase for SVN references (such as staff client installer auto build ID) **UPDATE 2011-05-14; direct references removed; phasefx and tsbere looking at the build ID issue** |
- | * DIG manual references | + | * DIG manual references |
- | * Blog post / mailing list | + | * Blog post / mailing list **DONE** |
- | * Make SVN Trac page say " | + | * Make SVN Trac page say " |
- | * Teach continuous integration server about git | + | * Teach continuous integration server about git **DONE** |
- | * Freshmeat / Ohloh / Launchpad | + | * Freshmeat |
+ | * (Per comment by Jeff Godin on 2011-05-02) set up master to send updates to Evergreen commits mailing list. **DONE tsbere++** | ||
dev/meetings/2011-04-30.1304366887.txt.gz · Last modified: 2022/02/10 13:34 (external edit)