This is an old revision of the document!
Table of Contents
Projects:
Projects
Each project is a web app, a subdomain of voyc.com, stored in github.
voyc - aka geo, replaced by global and then by geo
global - previously voyc, before geo
samantha - AI webchat
classy - comment classifier
layout - browser screen splitter
sandbox - experiment and demo
bahasa - language
flash - flash card memorization
guru - random quote
mai - language
plunder - game added atop voyc
sanskrit - language
robots - multiple hardware projects
vote - ranked choice voting
wordnet - database only, sql version of Princeton's WordNet
account - submodule, user management
fx - submodule, library of game effects
model - starter project template
jslib - library of javascript tools
Developer Guidelines
Search Engines
Most of our projects have a dev and a production version.
Example:
- jslib.voyc.com
- jslib.hagstrand.com
These two sites have duplicate content.
We want to tell the search engines to index prod, not dev.
How do we do that?
option 1. robots.txt
User-agent: * Disallow: /
This prevents the search engines from crawling the site.
But it does NOT prevent the search engines from indexing the site.
option 2. html meta
<meta name='robots' content='noindex,follow' />
This means that prod and dev will have a different line in index.html.
One way to accomplish that would be to use PHP.
Do we really want to do that?
option 3. password
How do we do that?
git Structure
Five Repository Groups
| location | name | git | purpose |
|---|---|---|---|
| gitlab | gitlab | voyc/proj.git (bare) | public git host |
| a2 | voycgit | voycgit/proj.git | central git repository |
| a2 | webprod | webprod/proj/.git | production web host |
| a2 | webdev | webdev/proj/.git | server development |
| local | webapps | webapps/proj/.git | local development |
Branches
gitlab, voycgit, and webprod have a master branch only.
webdev and webapps have a master branch and also a temporary feature branch.
Remotes
voycgit has no remotes.
gitlab has no remotes.
All other repositories have remote origin created by the initial clone from voycgit.
get remote -v $ origin ssh://voyccom@az1-ss8.a2hosting.com:7822/home/voyccom/voycgit/jslib.git $ origin /home/voyccom/voycgit/jslib.git
webprod also has remote gitlab
get remote -v $ origin /home/voyccom/voycgit/jslib.git $ gitlab https://gitlab.com/voyc/jslib.git
git Workflow
Develop in webapps or webdev
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 pull origin master git submodule foreach git pull origin master
create a feature branch, do your work, commit
git branch newfeature git checkout newfeature <make changes> git status git add * git commit -m 'New feature'
merge to master, delete feature branch
git checkout master git merge newfeature git diff master..newfeature git branch -d newfeature
push finished master branch up to voycgit
git push origin master
Publish in webprod
git pull origin master git tag 1.0.01 git push --tags origin master git push gitlab master
