User Tools

Site Tools


projects:projects

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projects:projects [2026/06/12 09:14] – [voyc release management] jhagstrandprojects:projects [2026/06/16 03:27] (current) – [End Branch] jhagstrand
Line 70: Line 70:
  
 =====Developer Guidelines===== =====Developer Guidelines=====
 +
 +==== Tab Indents ====
 +
 +Always use the tab character to indent.
  
 ====.gitignore==== ====.gitignore====
Line 78: Line 82:
   css.min   css.min
   index.php   index.php
 +  RELEASES.md
 ==== Duplicate Content ==== ==== Duplicate Content ====
  
Line 197: Line 201:
  
 [[..:git | more about log and tag]] [[..:git | more about log and tag]]
-Here are some ways developers can use log and tag commands. 
  
   # All tags with their full messages, most recent first   # All tags with their full messages, most recent first
   git tag -l --sort=-version:refname | xargs -I{} git show {} --no-patch --pretty=format:"%tag %*%(tag)%n%s%n%b%n---"   git tag -l --sort=-version:refname | xargs -I{} git show {} --no-patch --pretty=format:"%tag %*%(tag)%n%s%n%b%n---"
 +  
 +  git for-each-ref --sort=-version:refname --format="%(refname:short)%0a%(contents)%0a---" refs/tags
 +
 +
 +Practices:
 +  * Commits made only in feature branch.  Never on the master branch.
 +  * We let aider auto-commit every change.
 +  * At merge, we generally keep the detailed commits, but squash is optional.
 +  * The commit log is for developers.
 +  * At release, we create a tag, observing SemVer, with hand-written message.
 +  * Public release history is generated from the tag messages.
 +  * Conventional commits types are used only on the commit messages, not the tag messages.
 +
 +
 +==== One-time Fix Privacy in Log ====
 +
 +  # in laptop dev repo
 +  git checkout fixlog
 +  git filter-repo --mailmap .mailmap --force
 +  
 +  git checkout master
 +  git merge fixlog
 +  git branch -d fixlog
 +  
 +  git push origin master --force --tags   # push to bare repo
 +  git push gitlab master --force --tags   # push to gitlab
 +
 +==== Start Branch ====
 +  git branch peaceful
 +
 +==== Save Work ====
 +  # save work
 +  git checkout peaceful
 +  git push origin peaceful     # push feature branch to bare repo
 +  
 +==== End Branch ====
 +  git checkout master
 +  git merge --squash peaceful
 +  git commit -m 'squashed hand-written commit message'
 +  git branch -D peaceful    # after squash the big -D force is required
 +  git push origin master     # push master to bare repo
 +  git push origin --delete peaceful  # delete feature branch from bare repo
  
-  git for-each-ref --sort=-version:refname \ +==== Deploy ====
-    --format="%(refname:short)%0a%(contents)%0a---"+
-    refs/tags+
  
 +  git tag v0.2.0 -m'...'  # fancy hand-written tag message will become part of release history
 +  
 +  git push origin master --tags
 +  git push gitlab master --tags
 +  
 +  # in production webserver
 +  git fetch origin
 +  git reset --hard origin/master
 +  
 +  git push gitlab master --tags
  
projects/projects.1781270057.txt.gz · Last modified: 2026/06/12 09:14 by jhagstrand

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki