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 [2024/09/22 04:11] – [git Structure] jhagstrandprojects:projects [2026/06/14 03:11] (current) – [voyc release management] jhagstrand
Line 2: Line 2:
 ======Projects====== ======Projects======
  
-Each project is a web app, a subdomain of voyc.com, stored in github.+=====List of Projects=====
  
-[[projects:voyc:voyc]] - aka [[projects:geo:geo]], replaced by global and then by geo+Each project is a web app, a subdomain of voyc.com, stored in gitlab (previously github). 
 + 
 +=== For Developers === 
 + 
 +[[projects:layout:layout]] - browser screen splitter 
 + 
 +[[projects:account:account]] - submodule, user management 
 + 
 +[[projects:fx:fx]] - submodule, library of game effects 
 + 
 +[[projects:icon:icon]] - submodule, library of icons 
 + 
 +[[projects:jslib:jslib]] - library of javascript tools 
 + 
 +[[projects:minimal:minimal]] - html, css, javascript for a minimal web app 
 + 
 + 
 +=== Apps === 
 + 
 +[[projects:homepage:homepage]] - homepage for voyc.com 
 + 
 +[[projects:pokerface:pokerface]] - facial expressions of artificial feelings 
 + 
 +[[projects:geo:geo]] - geopolitics map drawing 
 + 
 +[[projects:curriculum:curriculum]] - voycipedia
  
 [[projects:global:global]] - previously voyc, before geo [[projects:global:global]] - previously voyc, before geo
Line 11: Line 36:
  
 [[projects:classy:classy]] - comment classifier [[projects:classy:classy]] - comment classifier
- 
-[[projects:layout:layout]] - browser screen splitter 
  
 [[projects:sandbox:sandbox]] - experiment and demo [[projects:sandbox:sandbox]] - experiment and demo
Line 34: Line 57:
 [[projects:wordnet:wordnet]] - database only, sql version of Princeton's WordNet [[projects:wordnet:wordnet]] - database only, sql version of Princeton's WordNet
  
-[[projects:account:account]] - submodule, user management+[[projects:model:model]] - starter project template
  
-[[projects:fx:fx]] - submodule, library of game effects+[[projects:timeline:timeline]] - timeline
  
-[[projects:model:model]] - starter project template+[[projects:voyc:voyc]] - leftover from when geo/global was voyc.com
  
-[[projects:jslib:jslib]] - library of javascript tools+[[https://docs.google.com/spreadsheets/d/19pIRXgSPT8AFUTCPh-eTPc8Ej9RInxtj518fo-t2HVs/edit?usp=sharing | projects checklist sheet]] 
 + 
 +[[https://docs.google.com/spreadsheets/d/1Hs1h9R91J8e3biNyIzN-aX_iER-cJ1zTMMGI4BeC-IA/edit?gid=2023137882#gid=2023137882 | webapps sheet]]
  
-[[projects:timeline:timeline]] - timeline 
  
-[[https://docs.google.com/spreadsheets/d/19pIRXgSPT8AFUTCPh-eTPc8Ej9RInxtj518fo-t2HVs/edit?usp=sharing | projects checklist]] 
  
 =====Developer Guidelines===== =====Developer Guidelines=====
  
-====Search Engines====+==== Tab Indents ==== 
 + 
 +Always use the tab character to indent. 
 + 
 +====.gitignore==== 
 + 
 +  robots.txt 
 +  .well-known/
 +  js.min 
 +  css.min 
 +  index.php 
 +  RELEASES.md 
 +==== Duplicate Content ====
  
 Most of our projects have a dev and a production version.\\ Most of our projects have a dev and a production version.\\
Line 106: Line 141:
 All other repositories have remote //origin// pointing to voycgit.\\ All other repositories have remote //origin// pointing to voycgit.\\
 webprod also has remote //gitlab//.\\ webprod also has remote //gitlab//.\\
- +
   get remote -v   get remote -v
   $ origin ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/jslib.git    $ origin ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/jslib.git
Line 113: Line 148:
 Note that use the ssh protocol; never the local protocol. Note that use the ssh protocol; never the local protocol.
  
-====git Workflow====+==== voyc git Workflow====
  
-=== Develop in webapps or webdev=== +== refresh the local repo and worktree == 
- +  git clone ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/vote.git
-== recreate or refresh the worktree== +
-  git clone ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/jslib.git +
-    or +
-  git clone /home/voyccom/voycgit/jslib.git +
-    or+
   git branch   # make sure you're in the master branch   git branch   # make sure you're in the master branch
   git pull origin master   git pull origin master
   git submodule foreach git pull origin master   git submodule foreach git pull origin master
  
-== create a feature branch, do your work, commit== +== start development == 
-  git branch newfeature +  git branch popup         # create a feature branch 
-  git checkout newfeature+  git checkout popup 
 + 
 +== development ==
   <make changes>   <make changes>
   git status   git status
-  git add * +  git add . 
-  git commit -m 'New feature'+  git commit -m 'New popup architecture  # version control 
 +  git push origin popup      # remote backup 
 + 
 +== pull in simultaneous development from server - ???? == 
 +  git switch master 
 +  git pull origin master  
 +  git checkout popup 
 +  git rebase master               # merge modified master into popup branch, resolve conflicts here
  
-== merge to master, delete feature branch==+== complete development ==
   git checkout master   git checkout master
-  git merge newfeature +  git merge popup 
-  git diff master..newfeature +  git diff master..popup 
-  git branch -d newfeature+  git branch -d popup 
 +  git push origin master      # push to central 
 +  git push origin -d popup   # delete branch from central
  
-== push finished master branch up to voycgit == +== in webprod ==
-  git push origin master +
- +
-=== Publish in webprod ===+
   git pull origin master   git pull origin master
   git push gitlab master   git push gitlab master
  
-=====.gitignore=====+==== voyc release management ====
  
-  robots.txt +Trends in release management as of 2026
-  .well-known/* +  * 50/72 rule. A commit message has three lines (title, blank, body).  The first line is the title and it is 50 characters long The second line is blank.  The third and subsequent lines make up the body; they are bullets, and they are 72 characters long.  [Ed. title is my word.  Other people say description or subject.] 
-  js.min +  * Conventional Commits.  The first line of the commit message is prefixed with a category: feat, fix, perf, style, refactor, test, build, chore.  This rule overrides an earlier rule that the title should be capitalized
-  css.min +  * Semantic Versioning.  Each release is numbered major.minor.patch, like 14.3.5. When a development group breaks backward compatibility, now a normalized behavior, they assign a new major number.  When a bug is discovered that is so dangerous it must be fixed immediately, they release a patch.
-  index.php+
  
-=====Create Bare Central Git=====+{{https://en.wikipedia.org/wiki/Conventional_Commits_Specification | more on Conventional Commits}}\\ 
 +[[https://semver.org/ | more on Semantic Versioning]] \\ 
 +[[https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html | Tim Pope: A Note About Git Commit Messages, 2008.]]\\
  
-  cd ~/webprod/sandbox/sandbox/ +At voyc we use these above trends in commit messages and tag messages The log of commit messages is detailed for developers.  The list of tag messages is more abstract, for users and managers.  Release histories are generated by script from the list of tag messages.
-  git remote set-url origin ssh: +
-  https://git.voyc.com/barecentral/sandbox.git +
-  git remote set-url origin ssh:+
  
-  cd ~/webprod/sandbox/sandbox/+At deployment, a file named RELEASES.md is generated from the tag messages by a script.  It is not committed; it listed in .gitignore. 
 + 
 +[[..:git | more about log and tag]] 
 + 
 +  # 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 push +  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. 
 + 
 + 
 +==== Deploy ==== 
 + 
 +  # in laptop dev repo
      
 +  # git filter-repo --mailmap .mailmap --force
 +  # lint
 +  
 +  git checkout master
 +  git merge blend
 +  git branch -d blend
 +  
 +  git tag v0.0.0 -m'...'
 +  
 +  git push origin master --force --tags
 +  git push origin --delete blend
 +  
 +  # in production webserver
 +  
 +  git fetch origin
 +  git reset --hard origin/master
 +  
 +  git push gitlab master --tags
 +
projects/projects.1726992683.txt.gz · Last modified: 2024/09/22 04:11 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