Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create an automated release workflow #338

Closed
lhstrh opened this issue May 16, 2021 · 6 comments
Closed

Create an automated release workflow #338

lhstrh opened this issue May 16, 2021 · 6 comments
Assignees
Labels
build system ci Continuous integration
Milestone

Comments

@lhstrh
Copy link
Member

lhstrh commented May 16, 2021

We should have a script that will make it easier to update our version numbers. Here are the relevant commits 18743fe db1602f that show the locations that have to be touched.

The script could take two arguments: the current version string and the new version string. The script should first perform a dry run and show all the changes. If the user confirms the changes are OK, commit them.

@lhstrh lhstrh added this to the 0.1.0 Beta milestone May 16, 2021
@lhstrh
Copy link
Member Author

lhstrh commented May 24, 2021

On a related note, there exist some files in the repository that should not be committed accidentally contributors unless they are updating the base configuration (potentially as part of a version update). These files should be listed in .gitignore and only (forcefully) updated when this is really the intention. Let's first try to come up with an exhaustive list:

  • org.lflang.targetplatform/org.lflang.targetplatform.target
  • ...

@lhstrh
Copy link
Member Author

lhstrh commented May 26, 2021

@a-sr mentioned: Gradle/Eclipse might have functionality for this. Python script exists for Kieler.

@a-sr
Copy link
Collaborator

a-sr commented May 26, 2021

This is the Python script for setting the version in Kieler: https://git.rtsys.informatik.uni-kiel.de/projects/KIELER/repos/semantics/browse/build/scripts/version.py

@lhstrh
Copy link
Member Author

lhstrh commented Jan 10, 2022

A private release-tools repository has been instantiated, and I'm working on an automated workflow that bumps version numbers, updates release notes, runs tests, create tags, and creates releases.

@lhstrh lhstrh changed the title Version update script Create an automated release workflow Jan 10, 2022
@lhstrh
Copy link
Member Author

lhstrh commented Feb 1, 2022

I found out that OSGi does not allow versions like 0.1.0-beta; it only allows 0.1.0 or 0.1.0.qualifier (the latter is synonymous with -SNAPSHOT in Maven). This means that until we are done publishing prereleases, we should just stick with 0.1.0.qualifier (OSGi) and 0.1.0-SNAPSHOT (Maven). The workflows I started working on will not be usable until we are ready for 0.1.0. This means we should move the completion of this task to our next milestone. We'll just publish 0.1.0-beta manually.

@lhstrh lhstrh modified the milestones: 0.1.0-beta, 0.1.0 Feb 1, 2022
@lhstrh
Copy link
Member Author

lhstrh commented Mar 17, 2022

How does this look for an automatically generated change log? Note that the first couple links don't work because the release hasn't been tagged yet. I encourage everyone to have a careful look the log below and correct/improve any PR or issue titles that are unclear. We can also do a better job categorizing PRs by labeling them. Any PRs that should not be included can be marked as such add the exclude label to them (more specifically, PRs that have any of the following labels are excluded: trivial, duplicate, question, invalid, wontfix, ci, exclude.

Changelog

v0.1.0 (2022-03-20)

Summary:

This is the first stable release of Lingua Franca. A number of new features have been introduced since v0.1.0-beta, including: generation of ROS2 nodes directly from LF code (C++); improved error handling; support for multiports and banks (TypeScript); modular support for runtime schedulers (C); and modal reactors (C and Python). Finally, a major refactoring has been performed in which all remaining Xtend code was ported to Java.

Full Changelog

Implemented enhancements:

  • Add a -v / --version flag to lfc #927
  • Produce informative message when lfc is run on non-LF files #919
  • Make Docker generation compatible with the files target property #887 #987
  • Preconfigure Epoch with example projects #374
  • In banks of reactors, make bank_index a proper parameter #343
  • Align the meaning of the threads target property across targets #290
  • Improve Stability of Positioning Edges connected to Reactions in Diagrams #1040 (a-sr)
  • Improve layout options #1015 (soerendomroes)
  • Support modal models in Python #1009 (edwardalee)
  • Replace the 'threads' target property with the 'workers' and 'threading' properties #993 (cmnrd)
  • Enable generation of ROS2 nodes directly from C++ code #984 (cmnrd)
  • Added --version flag to lfcand improved error messages #979 (cmnrd)
  • Improve warning message for unrecognized target parameters #964 (cmnrd)
  • Add bank & multiport support in TypeScript code generator with > 30 multiport tests. #942 (hokeun)
  • Added support for modular scheduler in C runtime #743 (Soroosh129)
  • Added support for Modal Models #501 (a-sr)

Fixed bugs:

Closed issues:

  • Epoch fails on valid file #1027
  • List modal reactor tests in own test category #1020
  • Merge JavaAstUtils and ASTUtils #1003
  • Kotlin classes do not get build by buildLfc task (unless the clean task is also run) #930
  • Port Xtend classes to Java #838
  • Use the same implementation of deque accross all C benchmarks #765
  • Use the BenchmarkRunner reactor in all C benchmarks #764
  • Build both Epoch with maven and lfc with gradle in our CI workflow #575
  • C syntax for referencing parameters and state variables #82

Merged pull requests:

@lhstrh lhstrh closed this as completed Apr 4, 2022
@lhstrh lhstrh added build system ci Continuous integration labels Apr 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build system ci Continuous integration
Projects
None yet
Development

No branches or pull requests

4 participants