ICM – Computer Science Major – Course unit on Technological foundations of Computer Science and M1 Cyber Physical and Social Systems – Course unit on CPS2 engineering and development, Part 2: Technological foundations of software development
Institut Henri Fayol - MINES Saint-Étienne
Automate build production
This session aims to familiarize you with the methods and tools for automating code production: compilation, testing, packaging, deployment, etc. In particular, we will see make, and Apache Maven
Complement to the slides for the MCQ
The MCQ will contain:
-
questions about the slides,
-
questions about
make, taken out of the resource Isaac’s Makefile, a great introduction to Makefile -
questions about python, taken out of the following two resources:
Reads and tutorials
-
Read CMake vs. Make
-
Make Read the first few sections of each chapter of the book GNU Make, skipping the later sections. In each chapter, the first few sections contain introductory or general information.
-
cMake The CMake tutorial provides a step-by-step guide that covers common build system issues that CMake helps address.
-
Gradle Get stated by reading the intro to Gradle, and follow the tutorial for a hands-on approach. Go more in depth if you wish.
-
Webpack Read the Get Started guides. Go more in depth if you wish.
-
Parcel Read the Get Started guides. Go more in depth if you wish.
-
Vite Read the Get Started guides. Go more in depth if you wish.
-
…
-
Read An unbiased evaluation of environment management and packaging tools
-
Poetry: read Introduction and Basic Usage. Go more in depth if you wish.
-
Hatch: read the Walkthrough sections. Go more in depth if you wish.
-
…
TODOs (By 14/11)
submit your work for Courses 3-4 as LASTNAME.zip to https://ecampus.emse.fr/mod/assign/view.php?id=33635 (expiration date/time: 2025-11-15 01:00 )
|
Learn an appropriate and modern build tool (see section Reads and tutorials above), and demonstrate your know-how by setting up and documenting the build tool usage on the project of your choice:
-
2/5 points - The project must clearly demonstrate how the build tool is used to automate various tasks such as:
-
Dependency management
-
Compilation
-
Project versions management
-
Packaging (into JARs, Wheels, …)
-
-
1/5 points - The build should be fully replicable using simple commands (like
mvn install,gradle build, ornpm install) -
1/5 points - README file should provide clear documentation on how to build, test, and run the project.
-
1/5 points - Build tool-specific configuration files should provide sufficient detail for an external reviewer, including metadata when relevant.
|
Project scope:
|
|
Note that the TODOs for Lecture 5 and Lecture 6 will request you to improve this project with:
|