Gergő Pintér, PhD
gergo.pinter@uni-corvinus.hu
everything
more precisely, repetitve tasks | scripting: writing relatively short and simple code to automatize an otherwise manual process
importance of personal preferences!
the figures are based on Figure 2.2 of the TortoiseSVN documentation
one developer can edit a file at the same time – not very effective
the figures are based on Figure 2.3 of the TortoiseSVN documentation
the figures are based on Figure 2.4 of the TortoiseSVN documentation
example: git, mercurial
the figures are based on Figure 2.5 of the TortoiseSVN documentation
example: subversion
example: git, mercurial
the figures are based on Version control concepts and best practices - by Michael Ernst [1]
when to make a commit?
source: When to make a Git Commit [2]
Continuous Integration is a software development practice where each member of a team merges their changes into a codebase together with their colleagues changes at least daily.
– Martin Fowler [6]
example: build script of the course website
A/B testing is more of a testing approach than a deployment technique, but it works similarly to canary deployment. It involves reviewing two versions of updates in small set of users to identify which version perform better. [8]
further reading: 11 DevOps Principles and Practices to Master: Pro Advice - by Fernando Doglio
should not replace human reviewing
just decrease the work by automatizing trivial tasks
[tool.poetry.dependencies]
python = "^3.12"
numpy = "^1.26.3"
pandas = "^2.2"
geopandas = "^1.0"
networkx = "^3.2.1"
osmnx = "^1.6.0"
matplotlib = "^3.8.2"
seaborn = "^0.13.0"
contextily = "^1.3.0"
opencv-python = "^4.9.0"
pyaml = "^23.9.7"
pyogrio = "^0.7"
pyarrow = "^15.0.0"
scipy = "^1.12.0"
haversine = "^2.8.1"
mapclassify = "^2.6.1"
openpyxl = "^3.1.2"
ecomplexity = "^0.5.2"
structlog = "^24.1.0"
h3 = "^3.7.7"
pandarallel = "^1.6.5"
jinja2 = "^3.1.4"
tabulate = "^0.9.0"
Python dependencies managed by poetry
remote: Resolving deltas: 100% (5/5), completed with 4 local objects.
remote:
remote: GitHub found 1 vulnerability on pintergreg/software-engineering's default branch (1 high). To find out more, visit:
remote: https://github.com/pintergreg/software-engineering/security/dependabot/1
command line warning after git push
pre-releases
additional labels for pre-release and build metadata are available as
extensions to the major.minor.patch
format | from semver.org
format examples:
“CalVer is a versioning convention based on your project’s release calendar, instead of arbitrary numbers.” | calver.org
“Your software’s major version should never exceed the first and most important number in computing: zero.” | 0ver.org
semver: “If your software is being used in production, it should probably already be 1.0.0.”
version | type | release date | delta |
---|---|---|---|
6.1.0 | Release | Tue 2024-06-18 | 0 |
6.1.1 | Bugfix Release | Tue 2024-06-25 | 1 |
6.1.2 | Bugfix Release | Tue 2024-07-02 | 1 |
6.1.3 | Bugfix Release | Tue 2024-07-16 | 2 |
6.1.4 | Bugfix Release | Tue 2024-08-06 | 3 |
6.1.5 | Bugfix Release | Tue 2024-09-10 | 5 |
source: The Cost of Interruption for Software Developers – by Steven To [14]
unplanned
planned
source: The Cost of Interruption for Software Developers – by Steven To [14]