-
Notifications
You must be signed in to change notification settings - Fork 8
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
Move to Nanomsg domain and publish on Crates.io #17
Comments
I am willing to contact Garrett / handle the logistics / push to Crates.io as soon as @jeikabu gives me the go-ahead. |
Should be fine. |
Going to mention that all that needs to be done is transfer ownership of this repo to @gdamore. |
I dont think that is necessary. I need to add you to the nanomsg project then we can move it. Sent from my Verizon, Samsung Galaxy smartphone
-------- Original message --------From: jeikabu <[email protected]> Date: 4/8/19 12:54 AM (GMT-08:00) To: jeikabu/nng-rust <[email protected]> Cc: gdamore <[email protected]>, Mention <[email protected]> Subject: Re: [jeikabu/nng-rust] Move to Nanomsg domain and publish on Crates.io (#17) Going to mention that all that needs to be done is transfer ownership of this repo to @gdamore.
I might need to do it as the current owner.
—You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub, or mute the thread.
{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/jeikabu/nng-rust","title":"jeikabu/nng-rust","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/jeikabu/nng-rust"}},"updates":{"snippets":[{"icon":"PERSON","message":"@jeikabu in #17: Going to mention that all that needs to be done is transfer ownership of this repo to @gdamore.\r\nI might need to do it as the current owner."}],"action":{"name":"View Issue","url":"#17 (comment)"}}}
[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "#17 (comment)",
"url": "#17 (comment)",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]
|
While NNG 1.2 and the Nanomsg Org items are pending, should I upload this to Crates.io as v1.1.1-rc.1? I have a branch that is working off of this repo that I'm eager to merge into my master branch. |
That should be fine. It's been stable for a while now. |
I should have it uploaded some time this weekend. I'm assuming you won't merge #18 until after NNG v1.2 comes out? EDIT: It has been uploaded. It looks like Crates.io will default to showing the latest non- EDIT: By "figure something out", I really mean "confirm that's how we want to do things". Crates.io displaying the wrong version won't impede the development of Runng or Nng-rs since we're in the know, but it may be an issue for people who want to use the raw bindings or are writing their own wrapper. |
Yeah, that The way crates.io/cargo deals with everything after the
|
Originally, I decided that diverging was fine but tried to minimize it by saying that the major and minor version numbers will always match with NNG. In theory this is fine since the API for NNG shouldn't change between patch versions and it would allow the crate to make updates via the patch version. As long as the crate was very careful about the changes between patch versions, things generally work as expected. I do like the idea of Another thing I considered was controlling the NNG version via feature flags. I think it strikes a good compromise between allowing the crate to be updated as needed but making it clear to the user which NNG version they are using (with the default feature being the last release). In my opinion, it doesn't matter what the crate versions are when the NNG version is right next to it: Looking at the FFI binding crates on Crates.io, it looks like most of them have chosen to have diverging version numbers. Unfortunately, I didn't see any that specified how their versioning work until libsqlite3-sys which uses feature flags to specify the version (among other things). sdl2-sys links to the system installed version but provides a bundled version behind a feature flag in case there are issues. Overall, it doesn't seem like there isn't any community consensus on what to do. I think we can agree that never updating the crate is not a good choice. I originally chose to diverge on the patch version since I was maintaining the bindings by hand but, now that we're using Bindgen, I don't think it is a better option than the others. On my own, I would probably have this crate use feature flags since Cargo will tend to do what the user is expecting. I will be fine with the |
I believe there was a problem with Semver already approximately works: Keep in mind how the package will most likely be used. I would expect the most important thing being nng compatibility. Subsequent releases in the "1.1.1" series would involve things like trivial packaging changes, documentation, etc. Most people just want the latest compatible version and to do that they can specify You might want to make a test crate and try pulling/building different versions. Using feature flags seems like it would get messy pretty fast. Especially with how clumsy it is to deal with mutually exclusive flags. |
If you don't like the "rc" change it to something else. I only used that because it seemed to be pretty common. |
This is true.
Wouldn't this mean that the changes we can make are controlled by the changes in NNG? We lose the ability to inform Cargo and the user if the update breaks something or adds features, as it is essentially a patch version. I don't anticipate there to be much of a need to make breaking changes, but adding that You're latest commit on the 1.2 branch does constitute a breaking change since I personally would tentatively answer "yes" because (1) Cargo won't do anything stupid since the user does have to fully specify the NNG version to get the latest and (2) it is very likely that the only direct users of this crate will be Nng-rs and Runng.
The thing I don't like about "rc" is just that it almost universally means "release candidate", which would imply that we never have actual releases. But, I did have an idea concerning that: if we follow the existing Rust precedent of only supporting the latest version, we could do non-RC releases right before we release a new version. I.e., right before we release |
I also think it's "yes". It's the same whether we use "rc" seemed fine because we're just an extension of nng proper. There really is no "final" 1.1.1 because we may always need to adjust documentation, etc. I would have preferred to use Not sure how much we need to worry about Anyway, I don't think there's a "perfect" solution. Pretty sure we're only going to get two of:
I'm ok with whatever you want to change it to. After messing with it for a while I gave up and accept that nng-sys just isn't the intended use-case. =) |
Ah. I wasn't quite sure what you meant before. This makes sense.
I guess we should just leave it for now. We already have an I like the idea of releasing a |
@neachdainn Just close this? I thought a "neutral" third-party would be best, but, honestly, it's easier if one of us just owns it. If you're not happy with me having it, I'll transfer it to you. No biggie. |
I liked the idea of having an "official" Rust binding, but you owning it is fine. It doesn't seem likely that yet another Rust NNG wrapper will appear. |
Were you guys looking for something from me? I’m happy to have this have a home on nanomsg.org. Note there is also a scaporust pure rust implementation of the protocols. |
If possible yeah, I was just looking to get rid of the dangling issues. From your April 8 comment it sounded like we needed to be added to the nanomsg org? Or, I can transfer the repo to you, whatever is required. |
Also, for whatever reason, Scaproust is largely unused (2,167 total downloads) compared to the NNG wrappers (9,711) and the Nanomsg wrapper (22,006). Even if there was a real push for a pure-Rust version of the protocols, Rust's asynchronous I/O situation has changed pretty dramatically over the last two years and the author has stated that it would probably require a rewrite.
I would love to have it there (ideally with |
I think we are ready to begin this process and that this crate is in a state where we can start moving our respective wrappers to it. I do want to keep it at an
*-rc
version until after we've both moved to it and have given it a little time to settle.The text was updated successfully, but these errors were encountered: