2018-10-24 14:07:23 +00:00
|
|
|
#+Title: Git Project Manager / Commission Open Source
|
|
|
|
#+Author: Yann Esposito
|
|
|
|
#+Date: <2018-10-25 Thu>
|
|
|
|
|
|
|
|
** =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:
|
|
|
|
|
|
|
|
#+BEGIN_QUOTE
|
|
|
|
Any headline that ends in a question mark
|
|
|
|
can be answered by the word no.
|
|
|
|
#+END_QUOTE
|
|
|
|
|
|
|
|
. . .
|
|
|
|
|
|
|
|
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/?
|
|
|
|
|
|
|
|
#+BEGIN_SRC
|
|
|
|
__ _______ ____ _
|
|
|
|
\ \ / / ____/ ___|| |
|
|
|
|
\ V /| _| \___ \| |
|
|
|
|
| | | |___ ___) |_|
|
|
|
|
|_| |_____|____/(_)
|
|
|
|
#+END_SRC
|
|
|
|
|
|
|
|
** GitHub™
|
|
|
|
*** GitHub™: Social Network
|
|
|
|
|
|
|
|
- user management & trust
|
|
|
|
- discoverability
|
|
|
|
|
|
|
|
*** GitHub™: its free!
|
|
|
|
|
|
|
|
#+BEGIN_QUOTE
|
|
|
|
If you're not paying for it,
|
|
|
|
you're the product being sold.
|
|
|
|
#+END_QUOTE
|
|
|
|
|
|
|
|
$$: 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...
|
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
*** GitHub™: Metas
|
2018-10-24 14:07:23 +00:00
|
|
|
|
|
|
|
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/
|
2018-10-24 17:16:59 +00:00
|
|
|
remember digg, readitlater?
|
|
|
|
- /downgradeware/
|
|
|
|
Swagger-UI v3 (v2 is neat), reddit new redesign (looks better, but slow)
|
2018-10-24 14:07:23 +00:00
|
|
|
- /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?
|
2018-10-24 17:16:59 +00:00
|
|
|
- use Eclipse instead of vim/emacs?
|
|
|
|
- use a super complex GUI instead of a few command line tools?
|
2018-10-24 14:07:23 +00:00
|
|
|
- etc...
|
|
|
|
|
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
*REAL STORY @WORK*: github dashboard is slow & terrible for the manager.
|
2018-10-24 14:07:23 +00:00
|
|
|
|
|
|
|
*** Why you shouldn't rely too much on GitHub™?
|
|
|
|
|
|
|
|
- Github™ is great to get you started:
|
|
|
|
- nothing to install
|
|
|
|
- only high level interface
|
2018-10-24 17:16:59 +00:00
|
|
|
- everything explained with nice docs
|
2018-10-24 14:07:23 +00:00
|
|
|
- github is really a great product
|
2018-10-24 17:16:59 +00:00
|
|
|
- *The hidden price to pay*:
|
2018-10-24 14:07:23 +00:00
|
|
|
- use closed source services
|
|
|
|
- give freely many private infos
|
|
|
|
- you must TRUST github for privacy, private account
|
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
*** Why not self hosted Gitlab then?
|
|
|
|
|
|
|
|
Gitlab is a better alternative but:
|
2018-10-24 14:07:23 +00:00
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
- 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)
|
2018-10-24 14:07:23 +00:00
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
*** =git clone=
|
2018-10-24 14:07:23 +00:00
|
|
|
|
|
|
|
- [X] code
|
|
|
|
|
|
|
|
- [ ] *issues*
|
|
|
|
- [ ] *reviews*
|
|
|
|
- [ ] *comments*
|
|
|
|
- [ ] *wiki/doc*
|
|
|
|
- [ ] *hooks*
|
|
|
|
- [ ] *web pages*
|
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
* 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
|
2018-10-24 14:07:23 +00:00
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
*** 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)
|
|
|
|
|
2018-10-24 18:28:19 +00:00
|
|
|
*** git is awesome!
|
|
|
|
|
|
|
|
battery included:
|
2018-10-24 17:16:59 +00:00
|
|
|
|
|
|
|
- =git= hooks
|
|
|
|
- =git instaweb=
|
|
|
|
- =git daemon=
|
|
|
|
|
2018-10-24 18:28:19 +00:00
|
|
|
*** 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
|
|
|
|
|
2018-10-24 17:16:59 +00:00
|
|
|
* Conclusion
|
2018-10-24 18:28:19 +00:00
|
|
|
*** 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
|
|
|
|
|
2018-10-24 14:07:23 +00:00
|
|
|
*** Decentralized Authentication: IndieAuth
|
|
|
|
|
|
|
|
- one of your online identities = one domaine name
|
|
|
|
- serve a page with all your online identity providers and username
|
|
|
|
- google
|
|
|
|
- twitter
|
|
|
|
- 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:
|
|
|
|
|
|
|
|
- https://indiewebify.me
|
|
|
|
- https://indieweb.org
|