Comments (16)
Just FYI with the recent updates I made to our GitHub workflow, deploying a new release is just a matter of tagging a commit:
> git tag v1.x.y
> git push origin v1.x.y
๐ Et voilร ! ๐
Our GitHub workflow will then automatically process the following steps:
- Compile the executables and the Python modules
- Test them
- Create the packages (Debian for Ubuntu, Python wheels and the Windows installer)
- Create a new release on GitHub
Release v1.x.y
(:warning: the version number is obtained from the fileCMakeLists.txt
, not from the tag name - see belowโ ๏ธ ) - Upload all the files to the GitHub
Release v1.x.y
- Upload the Python wheel packages to our PyPI project page
- Update the C++ API documentation
CMakeLists.txt
before pushing the tag
Lines 8 to 10 in 9a98d11
If the version already exists when pushing the tag, PyPI will complain and the workflow will fail miserably. My suggestion to avoid this annoying situation is to bump the version number just after the tag has been pushed. That way, the
CMakeLists.txt
is ready for the next release.
Good practice is also branching the code before a new major version is released. Use the branch name release/v1.x
. Minor releases are issued from the same major release branch (i.e. releases v1.1.1
, v1.1.2
, etc. will be issued from the branch release/v1.1
)
from jsbsim.
@seanmcleod I agree with you, that's a misleading piece of information. May be something along the line of this?
from jsbsim.
I think for now we just need to have the Release info on the GitHub Release page make it clear that the binaries are based on the latest commit. Users can browse through the commit messages for now.
from jsbsim.
For now I've added the following comment to the release notes.
Note - The assets listed above have been generated from the latest successful commit to the master branch, i.e. they are not from May 31 2018.
from jsbsim.
As far as I can tell, there's currently no well-defined version release of this package. There's one tagged commit on github from last May with no evidence that it was intended as a formal release (and certainly no version number), and there's a version 1.0.0.dev1 on PyPI which does not correspond to any tag in the
github repo and is explicitly not for general use (dev1).
from jsbsim.
Greetings,
we, JSBSim main developers/users, definitely need and welcome any kind of help and support in the area of continuous deployment. We are volunteers...
Thanks in advance to anyone who will contribute to tune our CI workflow!
from jsbsim.
from jsbsim.
@Phillip-M-Feldman correct we don't currently mark any particular commit as stable or have stable branches. Any commit that builds successfully and passes all the test cases is then uploaded to Releases as the current release.
I'm not really familiar with FlightGear's release mechanisms but they more than likely have a bunch of their own tests that have to pass before they include a particular JSBSim build into one of their releases.
from jsbsim.
I'm not really familiar with FlightGear's release mechanisms but they more than likely have a bunch of their own tests that have to pass before they include a particular JSBSim build into one of their releases.
JSBSim updates are pushed manually to FlightGear by myself ๐
New features are introduced in the development version before the feature freeze. FlightGear has its own CI which builds the executables as soon as a change is pushed (just as we do) and this allows volunteers to test the bleeding edge software.
Official releases happen once every quarter (2018.1, 2018.2, 2018.3, etc.) and bug fixes updates are released from time to time (2018.3.1, 2018.3.2, etc.). I took opportunity of these patch versions to release JSBSim bug fixes to FlightGear as well. Some details on the release plan are given on the FlightGear wiki.
from jsbsim.
Does continuous deployment mean that there are no stable releases?
No it does not. As @seanmcleod mentioned, at the moment we are using Continuous Integration (CI) to have a rolling release but it is not incompatible with a stable release. CI can be tuned to automatically publish a stable release when, for example, a commit is tagged.
However the problem is not really at a technical level since our CI is already capable (with a bit of tuning) to release a stable version. It is rather that we, collectively, need to make a decision about when the code is good enough for a stable release.
Users need to know which versions are considered relatively stable and which are not.
You rightfully opened the issue #153 about this and I suggest to continue the discussion there.
from jsbsim.
A new release Rolling_Release_v2019
has been pushed following issue #166. However this will suffer from the same problem than the previous release, i.e. it claims that
bcoconni released this xx minutes ago ยท nn commit to 114173fdc42a25dd515596084b495e9976857eda since this release
from jsbsim.
Yep, although I guess the period since release and the number of commits shown has at least been reset for now ๐
from jsbsim.
I have made some investigations recently about this particular issue. I think this is due to GitHub requesting to tag a commit when creating a release then using this tag as a reference to how old the release is with respect to the cutting edge code.
I am unsure if this issue can be properly worked around. At the moment, the options are:
- Tagging each commit (very ugly if you ask me)
- Moving the tag to
HEAD
at each commit but I think this would need to use the option--force
when pushing each commit which is quite unusual and could break history with regard to all the repository clones. - Simply display a warning message as we are currently doing.
from jsbsim.
๐ JSBSim now has its first official release v1.1.0
๐
You can download binaries from the v1.1.0 release on GitHub or install the Python packages with pip
:
> pip install jsbsim
Enjoy !
If you encounter issues with the published binaries, please open a new issue.
For the record, version v1.0.0
has been skipped since its tentative release happened such a long time ago that the released version would have been too different from v1.0.0.dev1
.
from jsbsim.
from jsbsim.
@Phillip-M-Feldman Better late than never ๐
from jsbsim.
Related Issues (20)
- JSBSim Simulink Function HOT 36
- Rust HOT 13
- Can autopilot feature come to jsbsim- unreal engine 5? HOT 2
- MSVC: toupper is not a member of std HOT 1
- Missing target_include_directories in libJSBSim
- JSBSIM_ prefix in CMake options
- Cython warnings about 'tp_print' which is deprecated
- Wrong calculation of vPQRdot in FGAccelerations class HOT 4
- Fixing the mixture for JSBSim piston aircraft HOT 54
- Request: turbine spindown table or property support HOT 2
- Aircraft crashed on air when rolling consecutively HOT 15
- How Jsbsim models the "+" shaped tail fins of missiles and rockets. HOT 1
- JSBSimFlightDynamicsModel could not be loaded in Unreal Engine HOT 4
- JSBSim interface to Matlab on Windows: throttle command from joystick doesn't work HOT 5
- Trim succeeds and results in NaN values HOT 1
- JSBSim and s-function have different results and different reactivity themselves HOT 1
- Building for Unreal 5 on Linux not working HOT 7
- Javascript alternative? HOT 2
- Linearization and simplex trim from console executable and xml script HOT 16
- FGTurbine Shutdown Spin HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jsbsim.