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

Null Safety Migration #112

Closed
TimWhiting opened this issue Nov 19, 2020 · 10 comments
Closed

Null Safety Migration #112

TimWhiting opened this issue Nov 19, 2020 · 10 comments

Comments

@TimWhiting
Copy link

Just wanted to open an issue for this since null safety is now in beta and they are encouraging package authors to migrate.

A quick check with pub outdated --mode=null-safety shows that crypto and time still need to update before this package probably should.

Showing dependencies that are currently not opted in to null-safety.
[✗] indicates versions without null safety support.
[✓] indicates versions opting in to null safety.

Package Name  Current  Upgradable  Resolvable             Latest                 

direct dependencies:
characters    -        ✗1.0.0      ✓1.1.0-nullsafety.5    ✓1.1.0-nullsafety.5    
collection    -        ✗1.14.13    ✓1.15.0-nullsafety.5   ✓1.15.0-nullsafety.5   
crypto        -        ✗2.1.5      ✗2.1.5                 ✗2.1.5                 
meta          -        ✗1.2.4      ✓1.3.0-nullsafety.6    ✓1.3.0-nullsafety.6    
path          -        ✗1.7.0      ✓1.8.0-nullsafety.3    ✓1.8.0-nullsafety.3    
time          -        ✗1.3.0      ✗1.3.0                 ✗1.3.0                 

dev_dependencies:
fake_async    -        ✗1.1.0      ✓1.2.0-nullsafety.3    ✓1.2.0-nullsafety.3    
pedantic      -        ✗1.9.2      ✓1.10.0-nullsafety.3   ✓1.10.0-nullsafety.3   
test          -        ✗1.15.5     ✓1.16.0-nullsafety.10  ✓1.16.0-nullsafety.10  

No pubspec.lock found. There are no Current versions.
Run `pub get` to create a pubspec.lock with versions matching your pubspec.yaml.

7  dependencies are constrained to versions that are older than a resolvable version.
To update these dependencies, edit pubspec.yaml.

@passsy
Copy link
Collaborator

passsy commented Nov 19, 2020

It would be awesome if you could also reach out to those projects :)

@simc
Copy link
Owner

simc commented Dec 10, 2020

I created a nnbd branch. We're just waiting on some transitive dependencies now.

@shinayser
Copy link
Contributor

shinayser commented Dec 29, 2020

@leisim Time has been already updated to NNDB. Seems that only crypto is missing, right?

EDIT: I just checked out and seems that crypto has been already migrated (dart-lang/crypto#105), but hasn't been pushed to pub. It could still be imported locally.

@TimWhiting
Copy link
Author

By the way crypto was just published, so this should be unblocked

@AKushWarrior
Copy link
Contributor

AKushWarrior commented Jan 1, 2021

NNBD migration for this package should be pretty easy since it's mostly methods. I can take a crack at it if it's not already been done.

@atreeon
Copy link

atreeon commented Jan 25, 2021

Hi, is there an update? I think the dependencies have been updated now?

@TimWhiting
Copy link
Author

@leisim @passsy
Any idea when you will merge the nnbd support? Seems like the only thing that needs to happen is a merge / publish cycle.

@shinayser
Copy link
Contributor

@leisim @passsy guys,why don't you add another admin to the project? Seems that you guys can't spend much time improving, accepting PRs, upgrading libs, etc... The project is starting to look a little "abandoned"
If there is anything we can do for you, please just ask!

@shinayser
Copy link
Contributor

Guys @leisim @passsy ? March 3 is about the corner. You got any news?

@passsy
Copy link
Collaborator

passsy commented Mar 1, 2021

0.6.0 has been published with nullsafety enabled.

I'm sorry for the delay to actually publish this nnbd version. While migrating we noticed that other packages, especially package:collection started shipping their own extension functions. Those, in the long-term, will make dartx obsolete.

The big question was, whether we want to expose those extension methods through dartx, as we do with the time and characters package. But when I tried I ran into multiple naming conflicts, which would 1. be a breaking change, 2. could cause many more breaking changes down the line when more extensions get added.

Future

I'm missing a long-term goal for this project and a clear scope for 1.0. That's why merging becomes slower. The more methods we add, the harder it gets to prevent conflicts. If we blindly add everything, this project becomes a mess of methods nobody actually uses (remember quiver?). And we have no way of telling which methods are actually used.

For the time being, I can only encourage everyone here to contribute new extensions to specialized packages with a clear scope.

@passsy passsy closed this as completed Mar 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants