Giter Site home page Giter Site logo

Release a 1.x about rxdart HOT 15 CLOSED

reactivex avatar reactivex commented on May 20, 2024
Release a 1.x

from rxdart.

Comments (15)

zoechi avatar zoechi commented on May 20, 2024 1

Releasing 1.0.0 is usually a committment to try hard to avoid breaking changes. If there are already plans to make breaking changes there is no point in going 1.0.0.
Most Dart packages and many even from the Dart team are below 1.0.0.
Instead of spending time convincing maintainers to go 1.0.0, time would probably be better spent to embrace the situation.
^ already does most of the work for you.

from rxdart.

brianegan avatar brianegan commented on May 20, 2024 1

I actually think a 1.0.0 is a good call... However, I don't think we're quite ready yet!

Gameplan:

  1. Figure out if we want to really rename this project or not. See #95.
  2. If we decide to rename, rename the operators we want to as well. If we decide not to, I think we should just keep operator names as they are today. They closely follow the Rx spec.
  3. a) If we rename, give the changes a couple of months to "bake" before releasing a 1.0. b) No rename -- push a 1.0. The API has been stable for a while and is used in Production apps.
  4. Release a 2.x once the new Version of Dart comes out, because it will introduce breaking changes to the core Stream apis.

Whatcha think?

from rxdart.

zoechi avatar zoechi commented on May 20, 2024 1

To bikeshed on the name. I'd remove dart from the name in any case.
Dart packages are usually searched in pub.dartlang.org and there Dart is implicit.
For others searching for "rx dart" would still find this package.

For operator names, I got the impression the names follow TypeScript Rx4, while many names changed in Rx5. TypeScript Rx is the only other Rx I know a bit about, therefore it's likely I miss a few things.

from rxdart.

zoechi avatar zoechi commented on May 20, 2024

What exactly is the issue with Dart/pub and pre 1.0.0 versions?
I'm pretty sure there is no difference except the ^ prefix in version constraints treats minor version increments in pre-1.0.0 like major version increments in post 1.0.0.

from rxdart.

johnbland-wf avatar johnbland-wf commented on May 20, 2024

https://www.dartlang.org/tools/pub/dependencies#caret-syntax

Caret syntax provides a more compact way of expressing the most common sort of version constraint. ^version means “the range of all versions guaranteed to be backwards compatible with the specified version”, and follows pub’s convention for semantic versioning. For example, ^1.2.3 is equivalent to '>=1.2.3 <2.0.0', and ^0.1.2 is equivalent to '>=0.1.2 <0.2.0'. The following is an example of caret syntax...

Basically, if you're semver'ing this repo and provide a minor update (say 0.15.0), consumers using the caret will not get it. ^0.14.0 does not translate to 0.15.0. If this repo was on 1.0.0+, a consumer with ^1.14.0 would easily get 1.15.0 when that minor was released.

Right now, consumers have to either say < 1.0.0 or manually upgrade anything using the caret.

from rxdart.

zoechi avatar zoechi commented on May 20, 2024

That's what I tried to explain in my previous comment.
Non-breaking changes should get 0.14.1, breaking changes 0.15.0.
Breaking changes shouldn't be loaded automatically.

For versions above 1.0.0 non-breaking changes should become 1.1.0 and breaking changes 2.0.0.
^ follows this rule.

from rxdart.

frankpepermans avatar frankpepermans commented on May 20, 2024

We would only release a 0.15.x version when we do breaking changes. This repo has been in 0.14.x for quite a while now, a future update might for example focus on some renaming: flatMap to switchMap, amb to race etc...

Such an update would be 0.15.x, targetting ^0.14.0 is therefore safe :)

from rxdart.

johnbland-wf avatar johnbland-wf commented on May 20, 2024

So the question remains, why not go 1.0 so minor is minor and not a major?

from rxdart.

johnbland-wf avatar johnbland-wf commented on May 20, 2024

@brianegan I agree with the planning there. If it is a rename, that could be the 1.0. It would definitely break a lot to rename classes anyway.

from rxdart.

travissanderson-wf avatar travissanderson-wf commented on May 20, 2024

in a similar vein, it would be extremely useful if we could go back and add git tags at each release that is already on pub

from rxdart.

frankpepermans avatar frankpepermans commented on May 20, 2024

So we still haven't gone 1.0.0 :)

The naming issue is now a bigger problem one year later, since rxdart had gained in popularity thanks to Flutter/BLoC.

I'd say keep the rxdart name, it's actually consistent from the Rx perspective, they list all implementations as rx-language, i.e.

  • rxjs
  • rxgo
  • rxjava
  • ...

Regarding v1.0.0, I'd like to do a full code review first, maybe refactor a few tiny bits, but I think api-wise rxdart is complete enough for a first version.

from rxdart.

brianegan avatar brianegan commented on May 20, 2024

@frankpepermans I think you're right. I say let's give the current version of our BackPressureStreamTransformer a month or two to stabilize while we perform a final code review / any cleanup necessary.

from rxdart.

frankpepermans avatar frankpepermans commented on May 20, 2024

Sounds good!

from rxdart.

brianegan avatar brianegan commented on May 20, 2024

Hey all -- we're working on converting the current library over to Extension methods. Once that's in place and stabilized, we should be good to go on a version 1.0.

I'm going to close this out for now since I think the discussion has run it's course!

from rxdart.

blaugold avatar blaugold commented on May 20, 2024

Can this issue be reopened? RxDart is widely used in production, and the last breaking change was published 18 months ago. It does not seem like RxDart is still in an early phase where a 0.x version is typically used.

from rxdart.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.