Ionic-framework: Request - add a release schedule

Created on 21 Mar 2017  路  10Comments  路  Source: ionic-team/ionic-framework

Ionic version: (check one with "x")
[ ] 1.x
[x] 2.x

Current behavior:
Ionic users don't know when next releases are coming out.
Knowing such thing, may help with their app release cycle.
Also, if ionic releases after angular does, it would always be nice to upgrade and test so the new application release will be stable with the latest version.

Expected behavior:
Like angular, add a release schedule file:
https://github.com/angular/angular/blob/master/docs/RELEASE_SCHEDULE.md
Including v2 and v3 - currently I don't know when is v3 even planned for, and it's current state. It seems out of date, and I (and I think many others) would love to give it a go.

Most helpful comment

I just want to jump in and clarify some things here.

As Manu said, we are scheduled to release every other Wednesday. We are following semver with our versioning, but we are incrementing the version number based on what is in master at the time of release. This means that each time we release, we are looking at what changes have been made and we are following these standards:

MAJOR.MINOR.PATCH

Major:    Incompatible API changes
Minor:    Backwards-compatible functionality
Patch:    Backwards-compatible bug fixes

So if we throw in a few bug fixes we'll release a patch (2.0.0 -> 2.0.1). If we have new features added we'll bump the minor version (2.0.0 -> 2.1.0). Any incompatible API changes that we see will result in a major version bump (2.0.0 -> 3.0.0).

We knew that the module changes would be breaking which is why the 3.0 branch was started, but we've had some of our team working on the minor releases as well (the 2.2.0 and 2.3.0 releases).

Does ionic 3 correspond with angular 4? does ionic plan to synchronise version numbers like angular does?

Yes, Ionic 3.0 will include Angular 4.0. The way we are bumping the Ionic version when we update the Angular version is if the Angular release is minor, our release will be minor. If it's a major Angular release, we will also tick our major version. Therefore, Ionic 2.3 will not include Angular 4.x.

But a broader view is still missing. for example, what is the time frame for ionic 3? will it be backwards compatible with ionic 2? will ionic 2 be developed when 3 is released?

Ionic 3.0 is tentatively scheduled for release on April 5. Many things could bump this date, as we are still in the process of testing it. All future releases after that will bump the versioning from 3.x.x. Since this will be merged into master there will not be any more releases off of 2.x.

If you'd like to test out our work on Ionic 3.0, check out my comment here: https://github.com/driftyco/ionic/issues/10869#issuecomment-288454633

Our plan is to release 2.3.0 today (I am currently running tests to verify nothing is broken, if all goes well it will be released) and then merge the 3.0 branch into master.

I do like the idea of a release schedule document, but I'm not sure how we will manage it since our versions aren't _entirely_ known ahead of time. If anything though we could better document how often we plan to do releases and our versioning system. Let me know if you have more questions!

All 10 comments

I agree it would be nice to have some more public info on this, but there definitely is something to work with:

  1. The GitHub milestones have a due date. 2.3 is scheduled for March 22nd, 2.4 for April 5th.
  2. The weekly published meeting notes sometimes provide a bit more info, like the current "Ionic 3 being tested internally, will ask for beta testers soon".

@Manduro thanks for that info.
I did already notice some release patterns, which helps me with releases, and the notes are very useful.
But a broader view is still missing. for example, what is the time frame for ionic 3? will it be backwards compatible with ionic 2? will ionic 2 be developed when 3 is released? etc...

Recently Angular started adhering to semver. What this means is that any breaking change to the API will cause the first number in the version to iterate. As you can see Angular 4 is almost out: https://github.com/angular/angular/blob/master/CHANGELOG.md. I can only assume Ionic is following Angular and Ionic 3 simply means they are making a breaking change to their API. This could be as simple as removing one of the attributes from ion-toggle so it should be backwards compatible with a very easy migration. So basically Ionic 3 is just the next iteration of Ionic 2.

https://medium.com/@mrshakirov/new-angular-4-is-coming-1f42b29158a7#.heoptjvr6

Which is all assumptions (on ionic, not on angular).
I would really like to know some formal info from ionic. An example question because of your comment, would be: Does ionic 3 correspond with angular 4? does ionic plan to synchronise version numbers like angular does? and again, if so, what is the time-frame for ionic 3.

We are releasing twice a month. If the new version introduces any back-incompatible change, we raise the major number.

Currently the 3.0 branch is running angular 4
https://github.com/driftyco/ionic/tree/3.0

@manucorporat Will ionic 2.4.0 use angular 4?

The ionic team is working hard on version 3.0 and following the commits there you can see what they do and what they are intend to do. But for sure it would be nice if there are a little bit more information to the community.

The only one thing I think should be better, the release schedule of supporting new angular versions should be much more better. Tomorrow they release angular 4 and we still are not able to test at least an ionic beta version for supporting new angular.
So we don't know when we can test it and when you plan to release stable version, we don't know if the would be in April or in July.

I think from last experience with angular2, the ionic team is waiting for max stable angular version. In angular2 also on RC they put many breaking changes in it and this costs a lot of human power, if you have every two weeks to resolve breaking changes and test it again.
This is the same reason why they support only a specific a angular, rxjs, zone version and don't put "^" in package.json

I can understand this reasons but I'd wish a compromise between earlier beta/rc tester and stability, and more information about release schedule of new versions for example with milestones beta, rc and due date.

BTW
I tried to test nightly ionic which supports rc5 and new lazy load but I was not able to migrate my app, this is the bug I opened yesterday https://github.com/driftyco/ionic/issues/10863

I just want to jump in and clarify some things here.

As Manu said, we are scheduled to release every other Wednesday. We are following semver with our versioning, but we are incrementing the version number based on what is in master at the time of release. This means that each time we release, we are looking at what changes have been made and we are following these standards:

MAJOR.MINOR.PATCH

Major:    Incompatible API changes
Minor:    Backwards-compatible functionality
Patch:    Backwards-compatible bug fixes

So if we throw in a few bug fixes we'll release a patch (2.0.0 -> 2.0.1). If we have new features added we'll bump the minor version (2.0.0 -> 2.1.0). Any incompatible API changes that we see will result in a major version bump (2.0.0 -> 3.0.0).

We knew that the module changes would be breaking which is why the 3.0 branch was started, but we've had some of our team working on the minor releases as well (the 2.2.0 and 2.3.0 releases).

Does ionic 3 correspond with angular 4? does ionic plan to synchronise version numbers like angular does?

Yes, Ionic 3.0 will include Angular 4.0. The way we are bumping the Ionic version when we update the Angular version is if the Angular release is minor, our release will be minor. If it's a major Angular release, we will also tick our major version. Therefore, Ionic 2.3 will not include Angular 4.x.

But a broader view is still missing. for example, what is the time frame for ionic 3? will it be backwards compatible with ionic 2? will ionic 2 be developed when 3 is released?

Ionic 3.0 is tentatively scheduled for release on April 5. Many things could bump this date, as we are still in the process of testing it. All future releases after that will bump the versioning from 3.x.x. Since this will be merged into master there will not be any more releases off of 2.x.

If you'd like to test out our work on Ionic 3.0, check out my comment here: https://github.com/driftyco/ionic/issues/10869#issuecomment-288454633

Our plan is to release 2.3.0 today (I am currently running tests to verify nothing is broken, if all goes well it will be released) and then merge the 3.0 branch into master.

I do like the idea of a release schedule document, but I'm not sure how we will manage it since our versions aren't _entirely_ known ahead of time. If anything though we could better document how often we plan to do releases and our versioning system. Let me know if you have more questions!

Hello all! I am going to close this issue but feel free to continue the discussion!

Thanks for the issue! This issue is being locked to prevent comments that are not relevant to the original issue. If this is still an issue with the latest version of Ionic, please create a new issue and ensure the template is fully filled out.

Was this page helpful?
0 / 5 - 0 ratings