Mirror — primary at git.dannydannydanny.me
Find a file
2021-10-02 13:02:41 +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 Update diagrams.drawio 2021-08-18 15:23:20 +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 link to dev machine page 2021-10-02 13:00:05 +02:00
setup-dev-machine.md 📝 update brewfile 2021-10-02 13:02:41 +02:00
vim.md add vim scratch pad 2021-03-31 12:56:19 +02:00

DannyDannyDanny/Methodology

This guide focuses on designing, developing and delivering Data-Processing Sytems, written primarily in python, deploying to Linux servers, optionally communicating with external interfaces (APIs or DBs). The repo is actively being updated; bookmark 🔖 it, leave a Star or Watch 👁️ the repo.

Gitmoji

Repo Roadmap

  • 2021Q3: Decide on sections:
    • Sections by Project Phase (setup, develop, deploy, deliver)
    • Each section should covers fixed topics (version control, systems management, docuementation)
    • Information that doesn't fit here goes to Topic Hierarchy into phases
  • 2021Q4
    • Each section has at least one bullet point
    • Add Custom utils.
  • 2022Q1 Delivery Methodology
  • 2022Q2 Consultancy Methodology

Gitmoji reference

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. Use several gitmojis if it makes sense.

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: bug fixing
🚚 :truck: moving / renaming
♻️ :recycle: work related to CI/CD, webhooks, automated tests
💥 :boom: work in progress / breaking changes
📝 :memo: doc / logging / verbosity / code comments
🔥 :fire: remove (dead) code / file
👽 :alien: changes related to APIs and Databases
🎉 :tada: clean / transform / validate data
💄 :lipstick: improve UI / UX, CLI or visualizations
🧠 :brain: statistical modelling, training and prediction
📌 :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).

Setup

Develop

Python Developement

Develop with Version Control

# 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

# see all commits that affected somefile
git log --follow -- filename

# search code in all history
git log -S "some_old_varname" --oneline --all

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