From 91600f7f4962e6bb4c32356e20eeed96052ccf03 Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Fri, 28 Nov 2025 10:20:12 +0100 Subject: [PATCH 1/5] Update lecture demos --- 03_building_and_packaging/cmake_more_demo.md | 3 ++- 03_building_and_packaging/cpack_demo.md | 2 +- .../examples/ccmake/Dockerfile | 24 +++++++++++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 03_building_and_packaging/examples/ccmake/Dockerfile diff --git a/03_building_and_packaging/cmake_more_demo.md b/03_building_and_packaging/cmake_more_demo.md index a68c1e68..4fc6e646 100644 --- a/03_building_and_packaging/cmake_more_demo.md +++ b/03_building_and_packaging/cmake_more_demo.md @@ -8,7 +8,7 @@ - `tree cmake` - If software should be usable (for everybody everywhere), building and packaging is a project by itself - In `modules`: some `FindX.cmake`, partially third-party, partially developed by preCICE devs -- In `CMakeLists.txt`: `sources.cmake` included (around line 510) +- In `CMakeLists.txt`: `sources.cmake` included (around line 553) - No glob, but generated externally (some python script) - Look at `src/sources.cmake` - Look at `CPackConfig.cmake` @@ -18,6 +18,7 @@ - There are many tools around CMake, `ccmake` is also developed by KitWare - Separate package on Ubuntu: `sudo apt-get install cmake-curses-gui` + - If necessary, use Docker recipe in [`03_building_and_packaging/examples/ccmake`](https://github.com/Simulation-Software-Engineering/Lecture-Material/tree/main/03_building_and_packaging/examples/ccmake). - Delete previous build folder and start from scratch - `ccmake ..` - `[c]` if not yet configured before diff --git a/03_building_and_packaging/cpack_demo.md b/03_building_and_packaging/cpack_demo.md index d0caecfd..15735b76 100644 --- a/03_building_and_packaging/cpack_demo.md +++ b/03_building_and_packaging/cpack_demo.md @@ -96,7 +96,7 @@ Example code is in [`03_building_and_packaging/examples/cpack`](https://github.c - `cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release ..` and `cpack -G DEB` ... no complaints - Different package name: `helloworld_0.1.0_amd64.deb` - Install the package: `apt install ./helloworld_0.1.0_amd64.deb` -- `helloworld` and `which helloworld`: now `/usr`, not `/usr/local`, since we use package manager. +- `helloworld` and `which helloworld`: we just installed one in `/usr`, not in `/usr/local`, since we used package manager (but the old one could still be called first). ## Check Debian Package diff --git a/03_building_and_packaging/examples/ccmake/Dockerfile b/03_building_and_packaging/examples/ccmake/Dockerfile new file mode 100644 index 00000000..c383b1c7 --- /dev/null +++ b/03_building_and_packaging/examples/ccmake/Dockerfile @@ -0,0 +1,24 @@ +From ubuntu:24.04 + +RUN apt-get -qq update && \ + apt-get -qq -y install \ + build-essential \ + cmake \ + g++ \ + vim \ + tree \ + git \ + cmake-curses-gui \ + libeigen3-dev \ + libxml2-dev \ + libboost-all-dev \ + petsc-dev \ + python3-dev \ + python3-numpy + +# This is some strang Docker problem. Normally, you don't need to add /usr/local/lib to LD_LIBRARY_PATH +ENV LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/lib/ + +RUN git clone https://github.com/precice/precice.git + +CMD ["/bin/bash"] From fdb28dd01926e9494c9ccc6cf1d875090043a007 Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Fri, 28 Nov 2025 10:20:30 +0100 Subject: [PATCH 2/5] Update lecture --- 03_building_and_packaging/cpack_exercise.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/03_building_and_packaging/cpack_exercise.md b/03_building_and_packaging/cpack_exercise.md index 83dff825..ea1e3960 100644 --- a/03_building_and_packaging/cpack_exercise.md +++ b/03_building_and_packaging/cpack_exercise.md @@ -2,11 +2,11 @@ Let us try to package the code from the CMake exercise with CPack, such that we can give the (binary) software to somebody else. -Deadline: **December 11, 2024, 9:00** +Deadline: **December 10, 2025, 9:00** ## Overview -- The goal of the exercise is to open a pull request from a fork of [the CPack exercise repository](https://github.com/Simulation-Software-Engineering/cpack-exercise-wt2425). Please name your pull request `Add installation and packaging targets`. In the pull request description, please explain what we need to do to test your code. If you work on any of the optional tasks below, please document in the description as well. +- The goal of the exercise is to open a pull request from a fork of [the CPack exercise repository](https://github.com/Simulation-Software-Engineering/cpack-exercise-wt2526). Please name your pull request `Add installation and packaging targets`. In the pull request description, please explain what we need to do to test your code. If you work on any of the optional tasks below, please document in the description as well. - The current state of the code is basically a solution of the CMake exercise from last week. For demonstration purpose the code is now, however, artificially split into a library `cpackexamplelib` and an executable `cpackexample`. - Your task is to develop a CMake/CPack configuration that allows generating a `.tar.gz` and a Debian `.deb` package of the code. To this end, follow the same four steps as in the lecture (details below). From f30598ba87db1bc89dae0c22309d7113fcfbc6bd Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Fri, 28 Nov 2025 10:20:42 +0100 Subject: [PATCH 3/5] Update time table --- timetable.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/timetable.md b/timetable.md index 5aa79ffd..7f7b56cc 100644 --- a/timetable.md +++ b/timetable.md @@ -72,3 +72,13 @@ ## 7.2 – Wed, November 26, 2025 - **90** min.: [Exercise: Packaging with Spack](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/spack_exercise.md) + +## 8.1 – Wed, December 3, 2025 + +- **5** min.: Organizational remarks: [slides](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/00_organization/organizational_remarks_week8_slides.md) +- **65** min.: Installation and Packaging with CMake and CPack: [slides](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/cpack_slides.md), [demo](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/cpack_demo.md) +- **20** min.: More CMake Demo (preCICE and ccmake): [demo](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/cmake_more_demo.md) + +## 8.2 – Wed, December 3, 2025 + +- **90** min.: [Exercise: Packaging with CPack](https://github.com/Simulation-Software-Engineering/Lecture-Material/blob/main/03_building_and_packaging/cpack_exercise.md) From 6e11f6708c227b35e499077733d5fc366cfcd97c Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Fri, 28 Nov 2025 10:20:53 +0100 Subject: [PATCH 4/5] Add orga slides for week 8 --- .../organizational_remarks_week8_slides.md | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 00_organization/organizational_remarks_week8_slides.md diff --git a/00_organization/organizational_remarks_week8_slides.md b/00_organization/organizational_remarks_week8_slides.md new file mode 100644 index 00000000..5b62d68f --- /dev/null +++ b/00_organization/organizational_remarks_week8_slides.md @@ -0,0 +1,92 @@ +--- +type: slide +slideOptions: + transition: slide + width: 1400 + height: 900 + margin: 0.1 + data-background-color: green +--- + + + +# Organizational Things Week 8 + +--- + +## Time Table + + + +| Date | Type | Chapter | Topic | Lecturer | +| ---- | ---- | ------- |------ | -------- | +| 12.11. |Lecture | 3 | Intro packaging, Python packaging | Ishaan | +| 12.11. |Lab | 3 | Python packaging | Ishaan | +| 19.11. |Lecture | 3 | Linux fundamentals, Make, CMake | Gerasimos | +| 19.11. |Lab | 3 | CMake and Docker | Gerasimos | +| 26.11. |Lecture | 3 | Spack | Ishaan | +| 26.11. |Lab | 3 | Spack | Ishaan | +| **03.12.** |**Lecture** | **3** | **CPack and more CMake** | **Benjamin** | +| 03.12. |Lab | 3 | CPack | Benjamin | +| 10.12. |Lecture | 4 | Technical writing | Gerasimos | +| 10.12. |Lab | 4 | Code review | Gerasimos | +| 17.12. |Presentations | C | **2nd student presentations** | students | +| 17.12. |Presentations | C | **2nd student presentations** | students | + +--- + +## Exam Registration + +- You have to register for exam (we cannot do this for you) +- Campus deadline should be today + +--- + +## Challenge First Report: MR Feedback + +- Try to write good MR titles and descriptions +- Resolve threads when comments are answered, done, or dropped +- If changes requested: try to fix in same MR +- Approval by reviewer: ready to merge +- All MRs should get merged +- You have to make usage of generative AI transparent + +--- + +## Challenge Contribution + +- Please open an issue in the [challenge repo](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge) explaining what you want to work on in the contribution. We will then use these issues to further discuss the progress of the contribution. Provide links to issues, pull requests etc. + - Deadline (for opening the issue): Dec 17, 2025, 23:59 + - If you open earlier, you get feedback earlier + - Latest feedback from supervisors: Jan 7, 2025, 09:45 + - Title of issue: "Contribution to SOFTWARE by USERNAME" + - Tag your supervisor in description +- Get in touch with maintainers early (through official channels) + - Discuss before you start developing From 036383bc665ed024a253b83271dbc3fbc6713b62 Mon Sep 17 00:00:00 2001 From: Benjamin Uekermann Date: Fri, 28 Nov 2025 10:22:46 +0100 Subject: [PATCH 5/5] Fix md formatting --- 03_building_and_packaging/cmake_more_demo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/03_building_and_packaging/cmake_more_demo.md b/03_building_and_packaging/cmake_more_demo.md index 4fc6e646..7dd171d3 100644 --- a/03_building_and_packaging/cmake_more_demo.md +++ b/03_building_and_packaging/cmake_more_demo.md @@ -18,7 +18,7 @@ - There are many tools around CMake, `ccmake` is also developed by KitWare - Separate package on Ubuntu: `sudo apt-get install cmake-curses-gui` - - If necessary, use Docker recipe in [`03_building_and_packaging/examples/ccmake`](https://github.com/Simulation-Software-Engineering/Lecture-Material/tree/main/03_building_and_packaging/examples/ccmake). + - If necessary, use Docker recipe in [`03_building_and_packaging/examples/ccmake`](https://github.com/Simulation-Software-Engineering/Lecture-Material/tree/main/03_building_and_packaging/examples/ccmake). - Delete previous build folder and start from scratch - `ccmake ..` - `[c]` if not yet configured before