Hey all,

Thanks all for your patience on the documentation refactor. We're nearing
the completion of the first (and most time-consuming) phase. I'd like to
reiterate why we're doing yet another docs refactor.

Issues addressed by the first documentation refactor from the first docs:
- We don't want the versioned docs or javadoc files to be tracked in the
main branch to avoid multiple copies of the docs being indexed in GitHub or
IDEs.
- We need a top level (non-versioned) Iceberg website that holds versioned
docs.

Issues addressed by this refactor along with the original issues are
addressed:
- The current docs release process is cumbersome and the code lives across
multiple repositories making it difficult to know where to contribute for
documentation: https://github.com/apache/iceberg-docs/blob/main/README.md.
- We wanted there to be an easy way to apply retroactive fixes to older doc
versions.
- A simple release process that should just be pushing a button and
reviewing a PR.
- Restyle Mkdocs default theme to look like the existing Iceberg theme.
- Fix broken links (there were a lot).

More design details:
https://docs.google.com/document/d/1WJXzcwC6isfoywcLY2lZ9gZN6i0JU1I2SIZmCkumbZc/edit?usp=sharing

Phase 1 Solution:

We've moved to an mkdocs-material theme, which has a rich ecosystem of
plugins that enable us to do the versioning under a single build process.
Code: https://github.com/apache/iceberg/tree/main/site
Preview: https://apache.github.io/iceberg/
We're currently running the preview of the new docs site on the main repo's
github pages link (no worries, https://iceberg.apache.org/ is currently
hosted on the ASF infra site in the iceberg-docs repo
https://github.com/apache/iceberg-docs/blob/main/.asf.yaml#L38-L39)

Improved Release process:

There's some questions I have to the community about how the release
process should go. I want to automate it as much as we can, while keeping a
control in place. My suggested approach would be to automate the first
three steps and have a 4th manual step for the release manager:

   1.  Invoke docs release workflow after main release (Unless we decide
   the steps below shouldn't be automated):
      1. Create a copy of the versioned documentation and build the
      Javadocs.
      2. Automerge these builds into the headless [docs branch](
      https://github.com/apache/iceberg/tree/docs) and the [javadoc branch](
      https://github.com/apache/iceberg/tree/javadoc) which are independent
      from the main branch. I don't see much benefit in reviewing the
docs branch
      that has already been reviewed going into main, or reviewing the
1k+ change
      for the javadocs, hence those would be auto-merged and easy to
roll back if
      something rendered improperly before the final PR.
      3. Create a pull request with an offline build of the documentation
      to verify everything renders correctly.
   2. The release manager validates the site/docs and merges that PR to
   finalize the docs release.


For more information see the README:
https://github.com/apache/iceberg/blob/main/site/README.md
The final merge to swap is here: https://github.com/apache/iceberg/pull/9520

I want to leave some time and capture a vote on when we'll be ready to move
forward, and address any concerns before we swap the sites.

Along with your vote, could you also let me know if you're in favor of
automating the release steps except for the final merge into the main
branch that updates the site version to use in the static pages.

Thanks all!

Bits

On Fri, Sep 29, 2023 at 12:20 AM Jean-Baptiste Onofré <j...@nanthrax.net>
wrote:
>
> Hi Brian
>
> Thanks for the update. I will take a look.
>
> Regards
> JB
>
> Le ven. 29 sept. 2023 à 07:05, Brian Olsen <bitsondata...@gmail.com> a
écrit :
>>
>> Hey All,
>>
>> I know it's been a while but the first phase of the docs refactor has
landed. I think it's at a decent point for everyone to take a look. To be
clear, this is not going to replace the existing website yet, but get the
first large landing of new docs to provide the initial proof of concept for
the build and make incremental changes until we are comfortable making the
swap. Once this is in and 1.4.0 goes out, I'll have to retroactively create
tags for each prior version of the documentation. While that's happening,
we can have someone else work on the look and feel of the website, to look
closer to our current site.
>>
>> https://github.com/apache/iceberg/pull/8659
>>
>> Thanks! Let me know if you have any questions!
>>
>> - Bits
>>
>> On Thu, Jul 27, 2023 at 4:10 PM Szehon Ho <szehon.apa...@gmail.com>
wrote:
>>>
>>> Hi
>>>
>>> I'm ok with putting things back in Iceberg repo, it gets more visbility
on prs.  I guess it used to be a bit distracting, but now with more
projects in Iceberg (pyiceberg, rust) we have to anyway use tags to filter
through all the mails.
>>>
>>> Just wanted to +1 on Fokko/Ryan suggestion to avoid versioned doc
directories, I had a lot of difficulties in this part doing the last
release: https://github.com/apache/iceberg/issues/8151 , as did Anton when
I consulted him offline.
>>>
>>> For me, replacing the 'latest' branch with a tag would be the biggest
win as it caused me the most trouble.  If we can avoid versioned docs and
use tags across the board, that would be even better, I do think all the
versions are already tagged in Github on every release, if that is your
question?
>>>
>>> Thanks,
>>> Szehon
>>>
>>> On Thu, Jul 27, 2023 at 2:31 AM Brian Olsen <bitsondata...@gmail.com>
wrote:
>>>>
>>>> Thanks Fokko,
>>>>
>>>> Yeah, I think tío address that we would need to switch to a tagging
that prefixes the different project name as a namespace within the tags
space (e.g. pyIceberg-0.4.0, rust-0.0.1, etc…). But certainly this would
result in an explosion of tags as we continue to introduce more projects.
I’m not sure if this makes it difficult to find things as long as you start
to search the prefix in GitHub it should be easy enough to find. Has anyone
else worked on a project where this type of tagging is applied? Are their
any performance, searching, or other implications we are missing?
>>>>
>>>> Bits
>>>>
>>>> On Thu, Jul 27, 2023 at 4:18 AM Fokko Driesprong <fo...@apache.org>
wrote:
>>>>>
>>>>> Hey Brian,
>>>>>
>>>>> Thanks for raising this. As a release manager, I can confirm that the
current structure is confusing, and I can also see the community struggling
with this because they are willing to contribute to the docs, but cannot
always find the place where to do this. I think the complexity of the
current website mostly comes from the versioned docs. It would be great if
we can find a way to make this easier. Instead of using the branches, we
could also use the release tags and build the docs for those versions.
>>>>>
>>>>> I think switching to mkdocs-material is a great idea. We currently
also use this for PyIceberg, and it works really well. My main concern is
around merging everything together. Should we combine Java and Python in
the same documentation? They have a different versioning scheme, so that
would create a matrix of versions. Go and Rust is also in the making, so
that would explode at some point.
>>>>>
>>>>> Cheers, Fokko
>>>>>
>>>>> Ps. Currently, PyIceberg uses the gh-pages branch for publishing the
docs.
>>>>>
>>>>>
>>>>> Op do 27 jul 2023 om 00:04 schreef Brian Olsen <
bitsondata...@gmail.com>:
>>>>>>
>>>>>> Hey all,
>>>>>>
>>>>>> I have some proposals I'd like to make to fixing the docs. I would
want to do this in two phases.
>>>>>>
>>>>>> The first phase I'm proposing that we locate all the documentation
(reference docs, website, and pyIceberg) back into the apache/iceberg
repository. I explain my reasoning in the attached document. This phase
would also update us from Hugo to MkDocs but keep all the content the same.
>>>>>>
>>>>>> The second phase, is focused on iteratively building out the content
that we've marked missing in some the proposal that Sam R. created along
with a recent community member, Mahfuza. We will also restructure the
content to following the diátaxis method (https://diataxis.fr/).
>>>>>>
>>>>>>
https://docs.google.com/document/d/1WJXzcwC6isfoywcLY2lZ9gZN6i0JU1I2SIZmCkumbZc/edit#heading=h.gli9mc2ghfz1
>>>>>>
>>>>>> Let me know what you think and bring on the questions and criticisms
please! :)
>>>>>>
>>>>>> Bits

Reply via email to