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
Copy file name to clipboardExpand all lines: 03_building_and_packaging/intro_slides.md
+13-12Lines changed: 13 additions & 12 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 raw 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.
@@ -77,16 +77,17 @@ slideOptions:
77
77
-[CMake](https://cmake.org/) <span>: building / installation / packaging tool mostly for C, C++ projects<!-- .element: class="fragment" data-fragment-index="1" --></span>
78
78
-[Spack](https://spack.io/) <span>: a package management tool mostly for supercomputing centers<!-- .element: class="fragment" data-fragment-index="1" --></span>
79
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/)
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/) and more ...
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