6.6 KiB
Git Project Manager / Commission Open Source
git
is a Distributed Concurrent Versions System- GitHub is a Centralized
git
host - Can we do without Github™?
- Git Project Manager
- DEMO
- Conclusion
git
is a Distributed Concurrent Versions System
GitHub is a Centralized git
host
Can we do without Github™?
Betteridge's law
Betteridge's law of headlines is an adage that states:
Any headline that ends in a question mark can be answered by the word no.
. . .
Here the answer is YES!
- Linux (only mail)
- GHC used a self hosted instance of phabricator + trac
- many others I don't know
All right, we can, but should we?
__ _______ ____ _
\ \ / / ____/ ___|| |
\ V /| _| \___ \| |
| | | |___ ___) |_|
|_| |_____|____/(_)
GitHub™
GitHub™: Social Network
- user management & trust
- discoverability
GitHub™: its free!
If you're not paying for it, you're the product being sold.
$$: Pay for private repositories
GitHub™: Features!!!
From their website (in that order):
- Code Review: comment diffs, approve, refuse, etc…
- Project Management: issues, milestones, dashboard, etc…
- Integrations: travis, slack, etc…
- Team Management: access rights, community guidelines, etc…
- Social Coding: follow, explore, share, etc…
- Documentation: github pages, wiki, …à
- Code Hosting: all your code in one place, tree view, blame view, etc…
GitHub™: Metas
Most GitHub™ features put data in their own internal closed representation:
- Issues
- Comments
- Pages
- Pull Request & review
- Wiki
Note there are tools to export them. Ex: migrate to Gitlab
GitHub™ is great today but can suck tomorrow
- bloatware remember digg, readitlater?
- downgradeware Swagger-UI v3 (v2 is neat), reddit new redesign (looks better, but slow)
- payware You rely on our feature, but now, we want you to move or to pay. Fair ;)
- crapware Nothing works as expected unless you pay: Twitter streaming API?
- dieware Remember Friendfeed? Google Reader™?
- etc…
GitHub™ force all your team member to use GitHub™
Were you already forced to:
- use PowerPoint? Excel? Word?
- code in PHP? in Java?
- work on windows? Harder need to ssh to UNIX machines?
- use Eclipse instead of vim/emacs?
- use a super complex GUI instead of a few command line tools?
- etc…
REAL STORY @WORK: github dashboard is slow & terrible for the manager.
Why you shouldn't rely too much on GitHub™?
-
Github™ is great to get you started:
- nothing to install
- only high level interface
- everything explained with nice docs
- github is really a great product
-
The hidden price to pay:
- use closed source services
- give freely many private infos
- you must TRUST github for privacy, private account
Why not self hosted Gitlab then?
Gitlab is a better alternative but:
- You still keep the metas of your project in the Gitlab server in some DB.
- You still force all the member of your team to use your Gitlab version, with your Gitlab plugins, with your Gitlab settings, etc…
- Gitlab push a big warn so you are pushed to upgrade (new features & anti-features)
git clone
- code
- issues
- reviews
- comments
- wiki/doc
- hooks
- web pages
Git Project Manager
Problems
- can't clone everything
- big dependence on private tooling (that could change or being interrupted)
- force same tooling choices accross your team members
Solution
- put metas in git branches CLONE ALL THE THINGS!!!!
. . .
- use text files for everything DO NOT FORCE ANY TOOL
. . .
- only rely on conventions, better on standardized conventions HELP TO WRITE SPECIFIC OPEN SOURCE TOOLS
Git Project Manager gpm
- command line tool
- integrate your project management metas in your git repo
- automate a few common tasks
- follow a few conventions
Tool freedom
- people on the team don't need to install or use
gpm
- they just need to follow a minimal set of conventions
- want to use other conventions? Write yourself a
gpm
in a few hours. - but really there are very few conventions
gpm
follows
gpm
conventions
git
as DCSV- text files
- Project Management metas goes in the branch
gpm
Encouraged but not enforced gpm
conventions
- encourage to use
org-mode
format but you can change - issues goes in
issues.org
file - reviews goes in
reviews/
with name<branch>-<reviewer>.org
- docs goes in
wiki.org
- serve goes in your XDG data dir (standard)
git is awesome!
battery included:
git
hooksgit instaweb
git daemon
org-mode is awesome
- TODO list oriented document convention
-
Extremely versatile:
- issues, bug tracking, comments
- handling with minimal friction code reviews
org-annotate-file
-
workflows:
- basic trello (TODO, IN-PROGRESS, DONE)
- scrum (EPIC / USER-STORY / etc…)
-
kanban:
- EPIC with different statuses (prep, specified,etc..), comments
- user stories with evaluation, different status, comments
- QA status
- Ops status
DEMO
Conclusion
Proof of concept
gpm
is a proof of concept but so simple its already usable- git clone should provide most of your projects data
- don't enforce tooling on your team, use text files
-
I encourage your to use org-mode its awesome! REALLY!
- vimer => spacemacs or doom-emacs
- IDE => switch to spacemacs eat the bullet!
- you still can edit org-mode with notepad
Going further: Decentralized Web
- the Internet was thought to be decentralized
- centralization of services made lot of things easy, it was fair at first
- but made us dependant and the balance is no more fair
- it is time to re-decentralize the Internet and take back control
- we shouldn't be dependant of private services
- we should pay private service, but they should adapt to us, not the other way around
Decentralized Authentication: IndieAuth
- one of your online identities = one domaine name
-
serve a page with all your online identity providers and username
- etc…
- but also your GPG keys (see keybase)
Mainly you OWN & CONTROLE your identity and the informations about it.
Decentralized Comments: Webmention
- you host your comment
- a 3rd party website can decide to show it in its comment section
Dentralized Web
- Your content is yours (prevent site death, change it, delete it…)
-
Better connection:
- messages can go to all your services
- use open standards
-
You are in control
- post anything, any format, no monitoring, share links.
Follow: