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

delay doc publishing until a release is tagged #1157

Closed
wants to merge 1 commit into from

Conversation

bjaglin
Copy link
Collaborator

@bjaglin bjaglin commented Jun 12, 2020

New features/deprecations should not be publicly documented until a corresponding release is cut. mdoc is now run as part of the CI workflow to limit the risk of docs/docusaurusPublishGhpages failing at release time (would a doc change breaking mdoc be visible only on master now?).

This came up as I realized I should hold #1155 & #1160 (granted, it's not a big deal if I don't) after seeing the SNAPSHOT version in https://scalacenter.github.io/scalafix/docs/users/installation.html#help. Holding documentation PRs is hard to manage - we would need GitHub milestones to handle them properly?.

Once #1146 is done, the concept of release will be local, so another strategy will need to be found.

@@ -1,9 +1,8 @@
jdk:
- openjdk8
stages:
- name: test
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dead conf?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks dead

New features/deprecations should not be publicly documented until a
corresponding release is cut. mdoc is now run as part of the CI workflow
to limit the risk of docs/docusaurusPublishGhpages failing at release
time.
@bjaglin bjaglin marked this pull request as ready for review June 12, 2020 20:14
Copy link
Contributor

@olafurpg olafurpg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend against this change since it’s desirable to be able to update the documentation after a release based on user feedback. I still haven’t found an ideal solution for dealing with this problem, versioned documentation pages have their issues as well. It works best in my experience to update docs on every commit, release frequently and try to document all stable versions together in the same document (tables showing compatible matrix etc)

@@ -1,9 +1,8 @@
jdk:
- openjdk8
stages:
- name: test
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks dead

@bjaglin
Copy link
Collaborator Author

bjaglin commented Jun 14, 2020

Thanks for the feedback @olafurpg! I am new to this, so I naively thought this would be better, but it's not that simple indeed.

it’s desirable to be able to update the documentation after a release based on user feedback

Without going the full way of an (over-engineered) versioned documentation, we could have a docs branch that we merge master into or reset to master on each tag/release, on which we could cherry-pick doc changes that apply / are relevant to the latest stable. Any push on that branch (and on that branch only) would trigger doc publishing. I am expecting such changes to be rare and the cost of cherry-picking to be acceptable, but that might be a biased assumption.

However, as sbt-scalafix and scalafix-core drift apart lifecycle/version-wise, this would no longer work unless the sbt-specific pages are migrated to sbt-scalafic repo (with potentially the same strategy), so the website becomes the combination of both docs. Maybe it's slightly off topic and should rather be discussed in #1146, but do you have some thoughts on this?

@bjaglin bjaglin marked this pull request as draft June 15, 2020 21:19
@olafurpg
Copy link
Contributor

I haven't used a custom branch strategy in any projects so I'm not sure how it would work in practice. I suspect I personally would think it requires too much manual effort to cherry-pick commits into the docs branch.

In Metals, we have an mdoc:since modifier that allows us to declare in what Metals version a feature got released and mdoc displays a warning if the latest stable version is older than the version where the feature got released.

https://github.com/scalameta/metals/blob/8d0924af4348dcad0a2ae8a228c9d2f1fdcbff55/metals-docs/src/main/scala/docs/VersionedDocsModifier.scala

We haven't used mdoc:since much, but I think it's a decent solution to this problem where you want to document new features as early as possible without confusing users with documentation of features that are not available in the stable release.

With all things considered, my recommendation would be to continue updating docs on every merge into master and hold off merging PRs documenting new functionality.

@bjaglin
Copy link
Collaborator Author

bjaglin commented Jun 16, 2020

With all things considered, my recommendation would be to continue updating docs on every merge into master and hold off merging PRs documenting new functionality.

Makes sense, thanks for sharing your experience!

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

Successfully merging this pull request may close these issues.

3 participants