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

Publish release as 1.1.0 #156

Closed
3 tasks done
ashawley opened this issue Aug 3, 2017 · 26 comments
Closed
3 tasks done

Publish release as 1.1.0 #156

ashawley opened this issue Aug 3, 2017 · 26 comments
Milestone

Comments

@ashawley
Copy link
Member

ashawley commented Aug 3, 2017

After hearing from Joe Barnes that #150 was indeed a breaking change for users, we should make the next release 1.1.0 and not 1.0.7. Previous discussion on 1.0.7 is #152

Release notes

@godenji
Copy link

godenji commented Aug 14, 2017

@ashawley got an ETA for the 1.1.0 release?

@ashawley
Copy link
Member Author

@godenji No, not yet

@ashawley
Copy link
Member Author

I wonder if we should jam in #155 at the last minute and add it to the release, since next release is a major version update? Any comments?

@joescii
Copy link
Contributor

joescii commented Aug 15, 2017

@ashawley I would greatly like to see a 1.0.7 release which includes #155, but doesn't include the breaking change in #150. I'll gladly do the git branch voodoo and submit PRs. The reason is Lift needs NodeSeq to be serializable for some new features being added in 3.2, but Lift will be broken by #150.

Normally the obvious thing to do is release 1.1.0 with #155 (or 1.1.1 if we need to be more conservative with this project), and have Lift 3.2 explicitly depend on 1.1.x. Unfortunately sbt has a bug where it will NOT use the scala-xml version specified the the project classpath, but whatever one the scala compiler wants. What this means is that anyone using Lift 3.2 with 1.1.x will have a broken development environment. The Lift 3.2 binary will expect 1.1.x, but sbt will only use 1.0.x which that particular scala compiler version required. Hence Lift will never successfully run in sbt for development. AFAIK, no one is working on the sbt bug nor is anyone actively looking to address the issue. Given that classpath issues are pretty gnarly and I'm unfamiliar with the sbt code base, I'll be pretty challenged to correct the issue with an acceptable PR.

But 1.0.7 with the serialization fix without #150 won't have this problem. Only a small subset of Lift users will enable the feature. Secondly, the feature is for production, not development, hence it doesn't need to behave correctly in sbt. Furthermore, this Lift feature I'm referencing will certainly require some thorough documentation, which can include a caveat about the sbt classpath in case someone tries to use the feature within sbt itself.

@ashawley
Copy link
Member Author

Thanks for these comments @joescii

I made multiple attempts at the compiler/scaladoc dependency issue for scala-xml. My last one was scala/scala#5689. Being "pretty challenged to correct the issue with an acceptable PR" was my personal flaw as well.

I'm happy to entertain your proposals. It sounds like we're pretty hamstrung in making binary changes to the library, IIUC: If we making breaking changes and still use a big version number to signal the breaking change, you're saying the compiler won't let the user actually use an incompatible scala-xml dependency in sbt? The compiler rules in sbt, essentially?

@joescii
Copy link
Contributor

joescii commented Aug 15, 2017

The way you rephrased it is correct. So if you're using scalac 2.12.2 and it depends on scala-xml 1.0.5 (I think that's the version anyway), but your project needs scala-xml 1.1.0, your code is going to get the 1.0.5 jar and blow up. The issue I opened against sbt shows it in close detail.

@joescii
Copy link
Contributor

joescii commented Aug 15, 2017

I don't wanna over impose on a project I've not been dedicating my own time to, but I suspect the sbt bug forces scala-xml into maintaining a branch with zero compatibility changes until the bug can be fixed and released. What do you think?

@ashawley
Copy link
Member Author

That's been my conclusion as well. Module system in 2.11 was possibly a feature that never existed. I'm sort of the confused police detective played by Chazz Palminteri in Usual Suspects.

@joescii
Copy link
Contributor

joescii commented Aug 15, 2017

Give me a few minutes to do some git fu, and I'll push a pair of branches to my fork for some review.

@joescii
Copy link
Contributor

joescii commented Aug 15, 2017

It turns out I already had such a branch locally: https://github.com/joescii/scala-xml/tree/revert-150

That branch should be a good branch for your backwards-compatible maintenance branch. I wasn't thinking long enough when I thought we needed a second branch. master is fine as is if y'all want it to continue as the latest and greatest.

@ashawley
Copy link
Member Author

Thanks @joescii for all your work on this. I grabbed your branch. I'm sure it will come in handy.

@godenji
Copy link

godenji commented Sep 12, 2017

Looks like a release has unfortunately been put on hold by the Lift saga. Would be nice to benefit from the new Scala.js support -- think we'll have something ready before end of the year?

@ashawley
Copy link
Member Author

ashawley commented Oct 6, 2017

@godenji I hope so!

@SethTisue
Copy link
Member

anything I, or anyone else interested, can help with here...?

@ashawley
Copy link
Member Author

ashawley commented Dec 3, 2017

Whether to include #165 in 1.1.0, and if so, get a review.

Otherwise, I think it's whether to give one more look at the artifacts for Scala.js and Java 9 before finally pushing the tag and cutting a release.

@SethTisue
Copy link
Member

#165 is merged.

I suggest not worrying about JDK 9, it's not a blocker for release. We can always do 1.1.1 and beyond.

@SethTisue
Copy link
Member

as for Scala.js, you can ask that someone on the Scala team take a quick look before releasing the artifacts that you stage.

also, I wouldn't worry about it too much. if we get it wrong again, Scala.js users will tell us and we can do 1.1.1.

in general, I think it's okay to be slightly reckless and not worry too much if there turns out to be something wrong with 1.1.0. there's lots of nice changes to get out there, and the way to get community feedback on whether something broke is to get a release out there.

@godenji
Copy link

godenji commented Jan 31, 2018

there's lots of nice changes to get out there

Scala xml support in the browser alone is release worthy, nevermind the myriad other fixes/enhancements :)

@ashawley ashawley added this to the 1.1.0 milestone Jan 31, 2018
@ashawley
Copy link
Member Author

I've pushed the button and tagged v1.1.0. Let's see how this goes!

@SethTisue
Copy link
Member

I've closed the staging repositories (orgscala-lang-1472, orgscala-lang-1473). shall I release them to Maven Central?

@ashawley
Copy link
Member Author

Sounds good to me

@SethTisue
Copy link
Member

whoosh! fly, artifacts, fly!

(I did check that the Scala.js artifacts are nonempty.)

@SethTisue
Copy link
Member

perhaps the release notes should say something about binary compatibility?

@ashawley
Copy link
Member Author

Agree, it seems worth mentioning.

This is a minor release, not a patch release. This release is binary compatible with the previous release, 1.0.6, but the default character encoding to XML.save was changed to UTF-8 from ISO-8859-1 which is not a forward-compatible change.

Any suggestions?

@ashawley
Copy link
Member Author

Thanks, Seth. I'm seeing them.

I've updated the release notes about binary compatability.

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

4 participants