Details on weekly releases#

The releases for your projects have been discussed in the lecture. Here there is detailed information in one location.

What is a release?#

Releases are deployable software iterations you can package and make available for a wider audience to download and use. You can create a release to package software, along with release notes and links to binary files. Releases are based on Git tags (versions), which mark a specific point in your repository’s history. Read more about releases in the official Github Documentation.

Making releases is common practice for packages: e.g. numpy v1.21.3

Release schedule#

Every release apart from v8 should be released at 10am on Mondays (before the lecture) according to the following schedule:

Date

Topic

Software version

Software releases

Grading / Feedback

0

09/09/2024

Python introduction I

1

16/09/2024

Public holiday

2

23/09/2024

Python introduction II

3

30/09/2024

Git and GitHub + VS Code

4

07/10/2024

Project introduction

v1

5

14/10/2024

Functionify

v2

v1

6

21/10/2024

Fall break

7

28/10/2024

Visualization and documentation

v3

v2

code review (API)

8

04/11/2024

Unit-tests, functional tests

v4

v3

9

11/11/2024

Code refactoring

v5

v4

graded (tests)

10

18/11/2024

Profiling and code optimization

v6

v5

code review

11

25/11/2024

Object oriented programming

v7

v6

graded (speed)

12

02/12/2024

Model analysis and project report

v8

v7

code review (OO)

13

09/12/2024

Work on project (no class)

14

16/12/2024

Wrap up

v8

graded (project)

Project release rules#

During project development, students are expected to regularly release new versions of their code according to the class schedule listed above. Selected releases will be subject to code review and grading as part of the course assessment as indicated in the table.

Use versioning for making your release. The only relevant rules for the class are:

  • make major releases per week, e.g. v1.0

  • if you find a bug/error after the release date, do not delete your release, but release a minor/patch release, e.g. v1.1 with a description: fixing xyz bug. That way we know that you didn’t miss the original deadline and later improved your code. We will always grade/review the latest available release.

Moreover, if you’re interested you can find more information about versioning in Python here.

How to create and manage a release?#

You can create new releases with release notes, @mentions of contributors, and links to binary files, as well as edit or delete existing releases.

To create a release follow the official Github Documentation.

With git one can easily checkout specific tags in the following way:

  • list the tags (git tag -l)

  • git checkout tags/<tag_name>

How should your project look?#

We provide an example project for you to compare. Please check it out at EPFL-BIO-210/demo-project.

Feel free to send us pull-requests if you want to suggest changes. You can check out the releases of this project here!