-
-
Notifications
You must be signed in to change notification settings - Fork 281
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
add illumos support to v0.1 branch #245
Conversation
illumos forked from Solaris around a decade ago, but is also currently without the "tm_gmtoff" member. test result: ok. 31 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
As I've mentioned in other issues, there will be one final release of 0.1 at some point in the future. I'll take a look at this eventually — a 0.1 release won't happen for a bit regardless. |
I'd really appreciate it if we could reassess the "unsupported" position for the v0.1 branch. There are no less than three PRs open against it at this moment, in no small part because people are trying to support it. I suspect this is because lots of other popular crates are using the 0.1 series API, and that there does not appear to really be an upgrade path: the types and routines used by consumers from 0.1 are for whatever absent from 0.2. If you're looking for help or resources, please let us know -- I'm sure that at least some of us, myself included, would be happy to assist in maintenance of the 0.1 branch. |
@jhpratt To give a sense of the scale of the problem, I knocked together a script to enumerate all of the reverse dependency versions exposed at https://crates.io:
This script emits one line per crate that depends on
As per the Cargo documentation on caret requirements specification:
Of the 878 crates which depend on time, it seems that the lion's share of them depend on the 0.1 branch:
The full breakdown of different requested versions appears below:
It seems better to continue to maintain the 0.1 branch as patches come in (e.g., for new platform support or small bug fixes) than to effectively require 750+ crates to perform work to cope with the fundamentally new API exposed in time 0.2. |
I'm well aware that most crates haven't upgraded. Note that some of the largest reverse dependencies have already upgraded, even if they're not released yet. While the API seems quite different, in reality the Time v0.1 has been out since before Rust 1.0. It hasn't been actively supported for years; I took the crate over because of incompatibility across the ecosystem and the fact that it was trivial to create invalid data. 0.2 is about ensuring things are correct while also decreasing memory usage and expanding support to more operating systems (by relying on the standard library). And just FYI, the 3 open PRs regarding v0.1 are either minimal changes or backporting changes from the standard library (which isn't strictly necessary). If I had sufficient time on my hands, there would already be a 0.1.43 release and support would be over. Things move on — 0.1 can't be supported forever. |
Definitely. I found issue #136 where the handover went down, and I'd like to say @jhpratt I appreciate the work you're doing both in maintaining the old branch and in pushing 0.2 to a sustainable point. Open source work can be thankless and tiring and so I want to offer the help of @pfmooney and myself here -- if you can add us to the time-rs organisation, we can do the sustaining work on 0.1 to allow you to focus exclusively on 0.2 related matters. We can tend to any CI/CD issues, checking to make sure only serious bug fixes or build changes (like this one) go in, and direct most new work to 0.2.
Total agreement here, and I think the new API in 0.2 is great. We're just looking to help keep the maintenance light on until the bulk of crates have had a chance to do the work required to cut over and test and release. Rust is very exciting for us and we'd love to be able to start using it in our core OS in place of C and Python and so on. As of rust-lang/rust#71145 we're officially in the compiler and ready to broaden access to Rust amongst our user community. That's a big part of our motivation to help out here, so that folks on our OS can begin using Rust today without having to float local patches all over the place. Let us know how you'd like to structure a joint effort, and however else we can help out! |
I'll take a look into adding the two of you to the organization tomorrow and get back with (some) details. Ultimately if you're willing to merge in fixes & support changes for v0.1, it's something less I have to do 🙂 . I will add in some basic protections to make sure nothing gets accidentally pushed to the v0.2 branch, as well. |
@jclulow I've just invited both you and @pfmooney to join the @time-rs/v0-1-maintainers team. This should give you push access to the v0.1 branch (and any others you may create). There's also a discussion area as part of this. Whenever you'd like a release, just ping me somewhere and I'll quickly review things before publishing! |
v0.1 illumos support merged as ae65abc |
illumos forked from Solaris around a decade ago, but is also currently
without the "tm_gmtoff" member.
The v0.1 branch of this crate is apparently still quite widely used, so I'd love to get a new version published to crates.io with this change inside! Thanks for taking a look.