gpm/Presentation.org
Yann Esposito (Yogsototh) 4268108f4c
🚧 WIP 🚧
2018-10-24 20:28:19 +02:00

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™?

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 hooks
  • git 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

    • 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: