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

Make migration guides available with a http://quarkus.io url #2105

Open
holly-cummins opened this issue Sep 2, 2024 · 1 comment · May be fixed by #2108
Open

Make migration guides available with a http://quarkus.io url #2105

holly-cummins opened this issue Sep 2, 2024 · 1 comment · May be fixed by #2108

Comments

@holly-cummins
Copy link
Contributor

holly-cummins commented Sep 2, 2024

See original 2023 discussion and proposal here: https://groups.google.com/g/quarkus-dev/c/MijWx9HyaWo

At the moment, we put migration guides (which are user-facing content) in with the content on https://github.com/quarkusio/quarkus/wiki, which is otherwise contributor-facing content. This is a bit untidy in terms of information-organisation.

Proposal

User experience

  • People visiting quarkus.io can see migration information
  • URLs similar to /guides/ so /migration-guides/3.14/ for instance
  • Open question: Do we also want to preserve the older github links for migration information? Not doing so is a bit easier, but breaking published links is undesirable.

Contributor experience

  • No worse than the current developer experience; life is hard, let's not make it harder :)
  • Ability to publish information independent of release cycles; we need to be able to make content available without having to spin a whole release
  • Ability for people to propose changes via PRs (new goal - with the current wiki, elevated privileges are need to make PRs)
  • Do we care about markdown vs adoc? At the moment old content is .md, new is .asciidoc, it would be nice to continue supporting both
  • Ability to edit in a web editor from the page itself, as well an IDE
  • Simple structure, just one .adoc document per version
  • No need to add new pages to an index (new goal, at the moment we have a hand edited index page )
  • Simple/no templates for new pages
  • Optional: no need to make new pages at all, release automation makes skeletons :) (new goal)
  • Optional: Automatically include a link to the announcement on the migration page
  • Optional: Automatically do other cool cross-linking stuff, leveraging the versions Jekyll collection

Implementation plan

No matter which option we go for:

"Keep stuff the same" option

  • Keep the wiki as the source of truth.
  • Use newrelic/wiki-sync-action to sync content into the website at build time.
  • Do some simple automation/scaffolding pages to make sure Jekyll can build the the wiki (http://hub.quarkiverse.io is built from wiki pages)

This has the advantage that it doesn't worsen the devex, but the disadvantage that it doesn't open up the wiki to PRs from non-committers. The 'edit this link' page on the main quarkus.io site might be a bit non-ideal, because it would have to take potential editors to the wiki source, but the link would only be a valid link for some people; for others it would always give an error, I think?

"Source in quarkus/quarkusio.github.io + sync" option

"Burn it all down" option

Same as "source in quarkus/quarkusio.github.io + sync" option, but no sync. This has the disadvantage that we break anyone which has linked to the old pages. This isn't as totally reckless as it sounds, because we're the owner of the pages that link to the wiki, we can just update the backlinks.

If we do this, we should leave the old content up for a couple of weeks after standing up the new content and rewriting links, to allow Google indexes to refresh.

It has a few advantages

  • No fussing with sync
  • No dependency on an external action, since we're trying to reduce the number of those we have (although newrelic should be a trustworthy source)
  • It gives us more flexibility because we can hand-edit the markdown/asciidoc files in ways that would break compatibility with the wiki [although Host migration pages on main website instead of/as well as wiki #2108 demonstrated no incompatible edits will be needed]
  • Removing the sync also removes some "where am I supposed to edit these files, there are two copies?" confusion and potential for lost work (doing a two-way sync would also somewhat remove the 'lost work' risk)
@holly-cummins
Copy link
Contributor Author

holly-cummins commented Sep 23, 2024

Some updates:

  • The "burn it all down" option would be quite expensive, because it turns out we link to migration content from guides and javadoc. That means any removal (or renaming) of content needs to be backported to various older streams. This means we would almost certainly want a staged approach with sync as an intermediate step, even if we do eventually aim to get rid of the old urls.
  • The main url that's linked from javadoc and guides is https://github.com/quarkusio/quarkus/wiki/Migration-Guide-3.0:-Hibernate-ORM-5-to-6-migration, which is unfortunate since the :- in that file name breaks Jekyll. A rename, even just on the wiki, seems too disruptive, so the sync will need to do some transformation of file content and names on the way in and out.
  • The GitHub wiki is a fork of gollum that lacks some of gollum's features, including "tolerate yaml frontmatter". Since GitHub wikis do not tolerate normal yaml frontmatter, it makes auto-generating the index page harder. We either need to pull the metadata from another source, or ‘protect’ the frontmatter with comment tags, and transform to and from the wiki source. We could pull release dates from other sources, like Maven Central, which would be pleasingly DRY, but I’m not sure we write down the LTS information anywhere else – or at least, not anywhere easily scrape-able.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant