You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Rework packaging intro and Python packaging (#243)
* Rework Introduction to Packaging slides
* Restructuring Python packaging lecture and adding an entry to the timetable of this semester
* Further reworking of slides and slimming down the demo
* Adjusting Python packaging slides according to slide mode on HedgeDoc
* Formatting
* Fix formatting
Copy file name to clipboardExpand all lines: 03_building_and_packaging/intro_slides.md
+17-16Lines changed: 17 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ slideOptions:
30
30
## Learning goals of chapter
31
31
32
32
- Explain why software is packaged.
33
-
- Create Python packages, publish on PyPI, and install with pip.
33
+
- Create a distributable package of a Python code, publish on PyPI, and install with pip.
34
34
- Understand the difference between static and dynamic libraries and common ways of installation on Linux.
35
35
- Build C++ software and handle dependencies with Make and CMake.
36
36
- Package C++ software with CPack and create Debian packages.
@@ -42,17 +42,17 @@ slideOptions:
42
42
43
43
- Bare code is often hard to understand for everyone except the developer(s).
44
44
- Packaging is a workflow to convert a code into a standardized distributable software.
45
-
- A code can be standardized in various ways. Some examples are
46
-
-creating a compact form by following a standardization.
47
-
-providing an installation recipe, for example, using CMake / make.
48
-
-bundling code into an app or software with some UI.
49
-
- We discuss **creating a compact form by following a standardization**.
45
+
- A code can be standardized in various ways. For example, by ...
46
+
-... providing an installation recipe, for example, using CMake / make.
47
+
-... bundling it into an app or software with a user interface.
48
+
-... packaging it according to an existing standard.
49
+
- We discuss **packaging a code according to an existing standard**.
50
50
51
51
---
52
52
53
53
## Why should we package code? 1/2
54
54
55
-
- A bare code with many files typically has difficulties like
55
+
- A code with many files typically has difficulties like
56
56
- multiple dependencies and requirements of specific versions of dependencies.
57
57
- intricate compilation / installation steps which are hard to get right.
58
58
- missing or limited starting information / documentation, which means a high entry barrier.
@@ -62,7 +62,7 @@ slideOptions:
62
62
## Why should we package code? 2/2
63
63
64
64
- Create a package to
65
-
- benefit from a package index or package manager which is familiar for a broad audience.
65
+
- benefit from a package index or package manager which is familiar to a broad audience.
66
66
- benefit from automated handling of dependencies of package managers.
67
67
- have ease of distribution and maintenance due to standardization.
68
68
- increase overall usability and sustainability of your code.
@@ -73,20 +73,21 @@ slideOptions:
73
73
74
74
- First step is finding the right standard for your code.
75
75
- There are several options:
76
-
-One of the many Linux package managers: apt, dpkg, yum, RPM and many more ...
77
-
-[CMake](https://cmake.org/) <span>: building / installation / packaging tool mostly for C, C++ projects<!-- .element: class="fragment" data-fragment-index="1" --></span>
78
-
-[Spack](https://spack.io/) <span>: a package management tool mostly for supercomputing centers<!-- .element: class="fragment" data-fragment-index="1" --></span>
79
-
-[Conan](https://conan.io/) <span>: open-source package manager for C and C++ development<!-- .element: class="fragment" data-fragment-index="1" --></span>
80
-
-[PyPI](https://pypi.org/) and [pip](https://pypi.org/project/pip/)
76
+
- Linux package managers: apt, dpkg, yum, RPM, etc.
77
+
-[CMake](https://cmake.org/)
78
+
-[Spack](https://spack.io/)
79
+
-[Conan](https://conan.io/)
80
+
-[pip](https://pypi.org/project/pip/)
81
81
-[Conda](https://docs.conda.io/en/latest/)
82
+
- and many more ...
82
83
83
84
---
84
85
85
86
## Why do we look at packaging a Python code?
86
87
87
88
- Python is easy to understand and widely used in research software.
88
-
-A well established packaging workflow already exists in the Python community.
89
-
-Various examples of packaged codes already exist: [NumPy](https://pypi.org/project/numpy/), [SciPy](https://pypi.org/project/scipy/), [PyTorch](https://pypi.org/project/torch/) and more ...
89
+
-Well established package managers and packaging tools already exist in the Python community.
90
+
-Several examples of packaged codes: [NumPy](https://pypi.org/project/numpy/), [SciPy](https://pypi.org/project/scipy/), [PyTorch](https://pypi.org/project/torch/).
90
91
91
92
---
92
93
@@ -95,4 +96,4 @@ slideOptions:
95
96
- Packaging or creating build recipe of a code is a standardized process.
96
97
- Many options in packaging / building tools.
97
98
- Most of these tools / methods are customized for use cases.
98
-
- In this lecture we will concentrate on packaging of Python code.
99
+
- In this lecture, we concentrate on packaging of Python code.
0 commit comments