Mirror — primary at git.dannydannydanny.me
Find a file
2021-08-17 14:47:56 +02:00
projects/copr 📝 add project portfolio for CoPr 2021-07-20 14:10:09 +02:00
.bashrc_gitbash 🐛 fix wrong name on gitbash bashrc 2021-04-09 11:18:36 +02:00
.vimrc_gitbash add .vimrc_gitbash 2021-04-09 11:53:38 +02:00
_config.yml 💄 add github pages markdown rendering 2020-12-16 10:21:50 +01:00
diagrams.drawio Fix success-output to finished 2021-08-17 14:47:56 +02:00
LICENSE Initial commit 2020-12-10 10:52:44 +01:00
python_kernel.md add python kernel management 2021-03-31 13:15:27 +02:00
README.md add git flow delete branches 2021-08-11 12:40:46 +02:00
vim.md add vim scratch pad 2021-03-31 12:56:19 +02:00

DannyDannyDanny/Methodology

Gitmoji

Repo Roadmap

  • 2021Q1: Gitmoji -> (general) Methodology
  • 2021Q2: Version control methodology
  • 2021Q3: Decide on sections
    • Python section
    • Organize other methodology into hierarchy
    • Split hierarchy into paragraphs / sections
  • 2021Q4
  • 2022Q1 Consultancy Method

This methodology repo is focused on Python Data Processing based projects with som external dependencies (APIs or DBs). The repo is actively being updated; Leave a start bookmark it or Watch the repo to get notificatied of updates.

Version control

Commit messages and gitmoji

Use the format :gitmoji: <commit message> in your commit messages. Only proper nouns, CamelCase and class names should have uppercases letters. Avoid using multiple gitmojis.

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

When using git repositories, connect with ssh.

The README for your project should contain a one-liner code that dowloads, installs and runs a mini-test.

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! 🚧 Use git hooks!

# Git Log A DOG acronym
git log --all --decorate --oneline --graph

# when you have uncommitted changes
git add --patch <pattern>

# check what you've staged
git diff --cached

# 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>

# delete branch locally (-d: normal, -D: force)
git branch -D <branch_name_1> <branch_name_2> <branch_name_1>
# delete remote
git push origin -d <branch_name>

# Comparing / Merging two branches
git merge --no-commit --no-ff <feature/otherfeaturebranch>

# get file from another branch
git checkout <otherbranch> -- path/to/dir

# delete branches not present on remote
git remote prune origin

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

Python

Packages we like:

  • pipx or pyenv. environment management.
  • argparse

Pathlib

For navigating, reading and filesystem and file read/write.

from pathlib import Path
Path('.').iterdir()
Path('.').absolute()

Deploying to Servers

When deploying to FreeBSD and Linux servers, place the code in the /home directory.

Documentation

  • Use Google's Markdown 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.

Other methdology

Sort Sections

Repo Badges

Coming soon! 🚧

Coverage badge

Project Portfolio

  • Consumption Predictor