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

collect documentation about how to be a Scala module maintainer #16

Open
SethTisue opened this issue Jan 10, 2017 · 17 comments
Open

collect documentation about how to be a Scala module maintainer #16

SethTisue opened this issue Jan 10, 2017 · 17 comments

Comments

@SethTisue
Copy link
Member

SethTisue commented Jan 10, 2017

we should really collect this stuff in one place, and this repo seems like the logical place

see e.g. the comments at scala/scala-swing#51 — there is info from me about the expected commitment level to be a community maintainer, info on tagging and publishing, info from @andy1138 on CLA checking, etc

we've also held other maintainers' hands on this stuff (e.g. @biswanaths, @ashawley, @gourlaysama)

would someone like to volunteer to add the basic info to the README? it doesn't need to be super comprehensive or elaborate, just basics. in the long run we can grow and refine it

@SethTisue
Copy link
Member Author

SethTisue commented Jan 10, 2017

in addition to how-to information about what to do once you are already a maintainer, it could also include information about what being a maintainer even involves, for people considering volunteering. then we could add "volunteers wanted" links to it from the module READMEs

see e.g. @adriaanm's remarks at scala/scala-xml#60

@adriaanm
Copy link
Contributor

There should be, but I don't recall any :-/

@SethTisue
Copy link
Member Author

SethTisue commented Feb 7, 2017

for the eventual doc: in addition to tagging and publishing, doing a module release should involve updating the module repo's "Releases" page so the release is marked as the latest release and includes release notes. see e.g. https://github.com/scala/scala-xml/releases . (I had to remind a new module maintainer about this recently.)

@SethTisue
Copy link
Member Author

@SethTisue
Copy link
Member Author

some perhaps usable material or ur-material is here: scala/scala-swing#65 (comment)

@ashawley
Copy link
Member

ashawley commented Oct 23, 2017

I've written down some notes specific to scala-xml on the wiki that probably overlaps with other modules:

I haven't made notes on anything about releases, but I'll probably make a separate guide for that.

@SethTisue
Copy link
Member Author

SethTisue commented Feb 16, 2018

about the CLA, previously: scala/scala-swing#51 (comment) so I think the status quo is that contributors are supposed to sign the CLA but we don't have automation for it in the module repos. this came up again at scala/scala-swing#68

@SethTisue
Copy link
Member Author

SethTisue commented May 1, 2018

how much freedom do module maintainers have to make changes? I wrote some remarks on this just now at scala/scala-swing#76 (comment)

@SethTisue
Copy link
Member Author

@ashawley's scala/scala-xml#225 shows how to publish module Scaladoc to scala.github.io

@SethTisue
Copy link
Member Author

how to publish module Scaladoc to scala.github.io

but also, there's been discussion at scala/scala-parallel-collections#27 on whether it might be adequate to just rely on javadoc.io for this

@SethTisue
Copy link
Member Author

SethTisue commented Sep 13, 2019

plugin version 2.1 makes a lot of changes; see #65

@SethTisue
Copy link
Member Author

a recent development (@lrytz tackled it) has been centralizing Travis-CI configuration at https://github.com/scala/scala-dev/blob/scala-dev/travis/default.yml using Travis's new "include" feature. sample PR scala/scala-continuations#60

@SethTisue
Copy link
Member Author

these days scala-xml has the "master" copy of build.sh. we propagate changes to other repos as needed

@SethTisue
Copy link
Member Author

SethTisue commented Nov 26, 2020

here's a checklist I've been using at publishing time:

  • review build & CI configs and PR any needed version bumps, CI matrix changes, etc
  • review/merge any outstanding PRs
  • choose version number (backpublish? new version?)
  • create/tag the release, including writing release notes
  • wait for Travis-CI release build
  • release the staging repos
  • wait for artifacts to arrive on Maven Central
  • post-release, bump version in README
  • publicity?

@SethTisue
Copy link
Member Author

SethTisue commented Dec 5, 2020

The latest build.sh, by @lrytz, which I think I've now copied around to all of the modules (nearly all, anyway?), changes how backpublishing works.

The new way to backpublish is to remove the unwanted matrix entries from .travis.yml, then tag and push the commit (tagged, but not on any branch: git push origin <tag-name>, where the tag name would be something like v1.0.0#3.0.0-M2 where the Scala version after the # is actually ignored by the scripts, it's just documentation)

I did this recently over at scala/scala-parallel-collections#143 and it worked fine.

@SethTisue
Copy link
Member Author

SethTisue commented Feb 10, 2023

there was a question on the timing of accepting Scala 3 version upgrades in modules at scala/scala-xml#647 (comment)

in short:

  1. it's fine to upgrade to new patch versions immediately
  2. since the modules are at the base of many big dependency trees, we should be a bit cautious about adopting a new minor release like 3.2.0, since it forces the upgrade on everyone downstream — better to wait for 3.2.1 or 3.2.2
  3. when we do move to a new Scala 3 minor version, we should also bump the module's minor version

note that Scala 3 version numbers are major.minor.patch (whereas Scala 2 version numbers are epoch.major.minor)

@SethTisue
Copy link
Member Author

SethTisue commented Feb 10, 2023

note that many of the remarks from past years about publishing no longer apply since all of the modules are on sbt-ci-release now, so the standard sbt-ci-release procedure applies. there is no more build.sh

also

how to publish module Scaladoc to scala.github.io

it might be adequate to just rely on javadoc.io for this

this is the universal standard now

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

3 participants