PoignardAzur / venial

"A very small syn"
MIT License
192 stars 9 forks source link

venial v0.6 plans #47

Closed Bromeon closed 6 months ago

Bromeon commented 9 months ago

Some of the features I worked on last year are not yet on crates.io, e.g. traits. There are also a few small things I'd like to add, like support for declarative macros.

A v0.6 release in January might be a good option to get back to it... What do you think?

Are there other smaller things people would like to contribute until then? I likely won't have the capacity for bigger things like #41 in the near future, and it doesn't look like there's overwhelming contributor interest right now😉

PoignardAzur commented 9 months ago

We'll do a new release. Sorry your features got lost in github limbo.

I could probably use this as an occasion to close #26, #40 and #46.

After that, make a 0.6 release for 6 months, and if nothing major changes by then (I'd be shocked) bump the version number to 1.0.

Bromeon commented 9 months ago

No worries, I could have pushed for it more as well 🙂

A bump to 1.0 would mean we can no longer change quite a few things, e.g. add fields to structs for not-yet-implemented syntax. At least if a subsequent 2.0 isn't planned soon. Are there enough users at the moment to have the confidence that the API is flexible enough for a while? Although you're right from the point that not that much has changed over quite some time. If you plan to go ahead with it, I'll try to intensify my usage over the next half a year to find missing features 😉

v0.6 might also be the chance to announce it somewhere, maybe get one or the other person to try it out.

PoignardAzur commented 9 months ago

add fields to structs for not-yet-implemented syntax

That's probably a sign we should mark them as non_exhaustive. I don't think there's a strong reason not to do that.

Bromeon commented 9 months ago

I don't think there's a strong reason not to do that.

It makes them impossible to construct outside venial. Which can be quite limiting for testing and creating signatures programmatically, without first going through a parser. There are some ways around (e.g. Default and builder pattern), but those make it again easy to forget some fields or construct invalid objects.

PoignardAzur commented 8 months ago

I've addressed all the issues I wanted to address. Once you review the PRs (should be fast enough, but I'll merge on Feb 1 if you don't have the time to review), if you don't have something else you want to tweak, we can do a 0.6 release.

Bromeon commented 8 months ago

Would be cool if I could get macros done (#50 + a follow-up PR). Should be doable until end of the month.

Are there other commonly-used symbols venial doesn't support yet?

PoignardAzur commented 8 months ago

Don't think so.

PoignardAzur commented 8 months ago

Are there other commonly-used symbols venial doesn't support yet?

The Rust reference book has the full list.

The only ones missing after your PR are extern crates and extern blocks.

Bromeon commented 8 months ago

The only ones missing after your PR are extern crates and extern blocks.

Not anymore 😎 #51

PoignardAzur commented 8 months ago

I think we're ready for a 0.6 version. Any other changes you'd like to push before that?

Bromeon commented 8 months ago

I'd like to update godot-rust to the current venial's master to see if there are any issues, other than that I could add the function you suggested in https://github.com/PoignardAzur/venial/issues/53.

Might also be a good opportunity to align some of the naming with official Rust terms. Mostly thinking of Declaration -> Item but I'll go through the other symbols as well.

Bromeon commented 6 months ago

I tested latest master successfully with godot-rust for some time. Have not used all the possible features but quite a decent coverage.

From my side I'd be ready for a 0.6 release, what do you think? If we find a lot of API-breaking changes, we can always consider a 0.7...

PoignardAzur commented 6 months ago

I'm ready. You have ownership rights on the crate, so you can make a release with cargo publish. Otherwise, I'll take care of it next week.

PoignardAzur commented 6 months ago

Done: https://crates.io/crates/venial/0.6.0