methodology/README.md

6.4 KiB

DannyDannyDanny/Methodology

Gitmoji

Repo Roadmap

  • 2021Q1: Gitmoji -> (general) Methodology
  • 2021Q2: Development Methodology
    • Oneliner build / install / run / deploy
    • Git (Branching, Merging and Pull Requests)
    • OpenStack: Linting and Pre-commit Hooks
  • 2021Q3: Decide on sections
  • 2021Q4

This methodology repo is focused on Python Data Processing based projects with som external dependencies (APIs or DBs). In your commit message use the format :gitmoji: <commit message>. Only propper nouns, CamelCase and class names should have uppercases letters. Avoid using multiple gitmojis.

gitmoji Lookup

emoji code description
:sparkles: add new feature / function
🎨 :art: refactor code / improve readibility / structure and lint flake8
🥅 :goal_net: try/raise/handle errors or warnings
:zap: improve performance / coverage / profiling
🐛 :bug: fix this bug
🚚 :truck: moving / renaming
♻️ :recycle: work related to CI/CD, webhooks, automated tests
🚧 / 💥 :construction:/:boom: work in progress / breaking changes
📝 :memo: doc / logging / verbosity / code comments
🔥 / ⚰️ :fire:/:coffin: remove (dead) code / file
👽 :alien: changes related to APIs and Databases
📊 :bar_chart: clean / transform / validate data
💄 :lipstick: improve UI / UX, CLI or visualizations
📌 :pushpin: dependency and environment versioning
🙈 :see_no_evil: changes to .gitignore and exclusively local files
🔍 :mag: changes in connection with PR-review change-requests

Missing a gitmoji? Get inspiration. Submit an issue (or Pull Request).

Oneliner install and run

The readme must contain a one-liner code that

git clone https://github.com/user/repo.git cool-repo && cd cool-repo
pipenv install
pipenv run python .
#cd .. && rm -rf cool-user-repo-online

Git Flows

In progress! 🚧

The A-DOG acronym

git log --all --decorate --oneline --graph

New Development Flow

# clone repo with local_name enables several clones
git clone <repo> <local_name>

# optional: checkout (i.e switch to) a branch to continue developing from there
git checkout <feature/featurename>

# optional if you switched branch on the last step
# switched branch: branch out from 
git checkout <feature/newfeature>
git branch <feature/newfeature>
git push --set-upstream origin <feature/newfeature>

Comparing / Merging two branches

git merge --no-commit --no-ff <feature/otherfeaturebranch>

Submitting multiple PRs

Context:

  1. submit PR for feature1
  2. from feature1 branch make new branch feature2
  3. commit and push feature2 changes
  4. submit PR
  5. Both PRs approved
# there should be one or more flows that account for cases where:
# -> feature1 gets change requests
# -> feature1 is rejected and made obsolete

Repo Badges

Coming soon! 🚧

Coverage badge

Documentation

  • Use markdown with Google Style Guide for written documentation.
  • Conceptual graphical documentation as inline embedded images.
  • Save Matplotlib / Seaborn plots as .svg.
  • Sketches and handwritten illustrations scanned / photographed as .png/.jpg.
  • Scanned / photographed illustrations should be cropped, contrast and alligned.
Cons of tables Pros of tables
Great splitting information Painful to format in MD

Other methdology