Would it be clearer if we had different API versions on the site?
We could have one API link per Calcite version (or at least for the latest
X versions) + an API link of the current master head (that could be updated
automatically).
I think this "multiple API" idea has been already discussed in the past,
but I could not find the thread.



On Mon, Mar 28, 2022 at 12:24 AM Francis Chuang <[email protected]>
wrote:

> It looks like Infra should be able to give us a token to push to
> calcite-site from our other calcite-* repos using Github actions [1].
>
> If we can have some consensus regarding whether to keep the site branch
> and maintain the current process, or to remove it and just publish from
> master, I can see if I can get the automated site builds moving along.
>
> [1] https://issues.apache.org/jira/browse/INFRA-21453
>
> On 28/03/2022 8:23 am, Stamatis Zampetakis wrote:
> > It would be great if we manage to wrap up CALCITE-3129 and have an
> > automated build for the website.
> >
> > The thing that complicates the procedure in general (automated or not) is
> > the fact that we don't want to publish API related changes on the web
> > before they are officially released.
> > I understand the benefits for trying to maintain this practice but I
> would
> > be willing to sacrifice those for having simpler procedures/scripts.
> >
> > I rarely search for any javadoc (Calcite or other) online because
> whenever
> > I need something the IDE fetches it for me. In most cases, the javadoc
> > won't be enough and I will need to dig in the code which is again fetched
> > automatically by IDE. If nothing works, and the project is open source, I
> > will simply download the respective project and look into the
> javadoc/code
> > directly.
> >
> > Apart from that, users will rarely jump to the latest Calcite version
> > directly so having the corresponding javadoc online might not be very
> > helpful.
> >
> > Long story short, another option would be to build/update the website
> > directly after every commit on master or at certain intervals (e.g.,
> daily)
> > and not have any other branches to maintain.
> >
> > If there are really people using the published javadoc on the website
> [1],
> > I would really like to hear their thoughts about this proposal.
> >
> > Best,
> > Stamatis
> >
> > [1] https://calcite.apache.org/javadocAggregate/
> >
> >
> >
> >
> >
> >
> >
> >
> > On Sat, Mar 26, 2022 at 10:57 PM Francis Chuang <
> [email protected]>
> > wrote:
> >
> >> Ideally, I would like to see that the site builds are automated by CI,
> >> we still have CALCITE-3129 [1] open.
> >>
> >> My thinking is that if we automate the site building and deployment
> >> process, we can use the following heuristics:
> >> - Build the site completely and deploy when a final release tag is
> >> pushed to the repo.
> >> - Build the site on a partial basis in all other cases:
> >>     - Option 1: Check out the last final release tag and apply changes
> to
> >> the site that only touches certain whitelisted categories such as news
> >> and community. This should allow us to not have documentation changes
> >> for code deployed before the final release.This should then allow us to
> >> get rid of the site branch
> >>     - Option 2: We keep the site branch, but we automate the current
> >> process. On every commit to master, if it is a change to the files in
> >> the site directory, we check if the change only touches certain
> >> whitelisted categories such as news and community. If so, we cherry pick
> >> that into the site branch automatically using Github Actions and build
> >> and deploy the site. When a final release tag is pushed to the repo, we
> >> use Github Actions to make the master and site branches equal and
> >> automatically build and deploy the site.
> >>
> >> This would negate the need to build and publish the site manually and
> >> simplify the process as we always only commit to master. As an added
> >> bonus, we if we keep the site branch, but automate the process, maybe we
> >> can lock the site branch so that only CI can push to it. The downside of
> >> course, is that we're relying on heuristics for the partial build, so
> >> there's some "magic" to it.
> >>
> >> Francis
> >>
> >>
> >> [1] https://issues.apache.org/jira/browse/CALCITE-3129
> >>
> >> On 26/03/2022 8:58 am, Stamatis Zampetakis wrote:
> >>> Hello,
> >>>
> >>> Thanks for starting this discussion Liya. It is important to find which
> >>> parts of the process are unclear and improve them if possible.
> >>>
> >>> The current procedure for updating the website remains unchanged and it
> >> is
> >>> documented here:
> >>>
> >>
> https://github.com/apache/calcite/blob/a6a1e2cef332893fd90286098869c56529e052c3/site/README.md
> >>>
> >>> If the procedure is not followed, which has happened a few times in the
> >>> past, meaning that someone commits directly in site without committing
> in
> >>> master then we will have commits in site that may get lost forever.
> >>> When we discover such commits we should port them to master. The
> >>> cherry-pick now goes in the opposite direction (from site to master).
> >>> This is usually discovered/done by the release manager and that's why
> we
> >>> have the respective instructions in the howto [1].
> >>>
> >>> After a release we don't care much what happens because master and site
> >>> should be equal. As Francis pointed out this is usually done with a
> force
> >>> push.
> >>>
> >>> Regarding Julian's question the commit hashes before the force pushes
> >> done
> >>> by Liya are the following (according to commits@calcite):
> >>> * master -> dcbc493bf699d961427952c5efc047b76d859096
> >>> * site -> aa9dfc7dbc64c784040cf20ed168016ae3b9c2c5
> >>>
> >>> Best,
> >>> Stamatis
> >>>
> >>> [1]
> >>>
> >>
> https://github.com/apache/calcite/blob/a6a1e2cef332893fd90286098869c56529e052c3/site/_docs/howto.md?plain=1#L696
> >>>
> >>> On Fri, Mar 25, 2022 at 7:36 PM Julian Hyde <[email protected]> wrote:
> >>>
> >>>> Does anyone know (or could find out) the SHA of the master and site
> >>>> branches at the time that Fan attempted to move the site changes over?
> >>>> If so, we could recreate the same environment, and figure out a set of
> >>>> git commands that would have worked then and will work for the next
> >>>> release manager. This process is safe because we can do these
> >>>> experiments in a local git sandbox, without pushing to any remote.
> >>>>
> >>>> On Fri, Mar 25, 2022 at 6:09 AM Fan Liya <[email protected]>
> wrote:
> >>>>>
> >>>>> Hi Francis,
> >>>>>
> >>>>> Thanks for your feedback.
> >>>>>
> >>>>> It seems we should choose option 2.
> >>>>> In addition, it seems less risky to run "git push --force" commands
> in
> >>>>> the site branch.
> >>>>>
> >>>>> Best,
> >>>>> Liya Fan
> >>>>>
> >>>>> Francis Chuang <[email protected]> 于2022年3月25日周五 12:14写道:
> >>>>>>
> >>>>>> Hi Liya,
> >>>>>>
> >>>>>> Thanks for bringing this up. We have always done the following when
> >>>>>> committing:
> >>>>>> 1. Always commit to master.
> >>>>>> 2. If we need to publish the change to the site now (for example,
> new
> >>>>>> committer or announcement), cherry-pick the change into the site
> >> branch
> >>>>>> and publish it.
> >>>>>> 3. After a release, make the site branch the same as master (git
> reset
> >>>>>> --hard master) and force push (git push --force origin site).
> >>>>>>
> >>>>>> Francis
> >>>>>>
> >>>>>> On 25/03/2022 3:03 pm, Fan Liya wrote:
> >>>>>>> Hi all,
> >>>>>>>
> >>>>>>> As part of the release process, we need to synchronize the master
> and
> >>>>>>> site branches (Please see
> >>>>>>>
> >>>> https://calcite.apache.org/docs/howto.html#making-a-release-candidate
> ).
> >>>>>>> Usually, the site is behind the master branch by some commits.
> >>>>>>> If the existing commits in the site branch are in the same order as
> >>>> in
> >>>>>>> the master branch, the task is easy: just switch to the site
> branch,
> >>>>>>> and run
> >>>>>>>
> >>>>>>> git rebase master
> >>>>>>>
> >>>>>>> However, if some commits are in different orders, it can be tricky.
> >>>>>>> For example, the master branch may have the following commits (in
> >>>>>>> order):
> >>>>>>>
> >>>>>>> A, B, X1, X2, ... , Xn.
> >>>>>>>
> >>>>>>> and the site branch may have the following commits (in order):
> >>>>>>>
> >>>>>>> B, A, X1, X2.
> >>>>>>>
> >>>>>>> Basically we have two choices:
> >>>>>>>
> >>>>>>> 1. We can live with the out of order commits, because after
> >>>>>>> cherry-picking commits X3, X4, ... , Xn to the site branch, the
> file
> >>>>>>> contents will be consistent.
> >>>>>>>
> >>>>>>> The problem is that, since the two branches have diverged, we
> cannot
> >>>>>>> use the rebase command. Instead, we have to manually cherry-pick
> >>>>>>> commits individually, which requires large effort. In addition, for
> >>>>>>> any subsequent release processes, we have to manually cherry-pick
> >>>> each
> >>>>>>> commit.
> >>>>>>>
> >>>>>>> 2. We need to make the commits order consistent, which will make it
> >>>>>>> easy for subsequent releases.
> >>>>>>> However, the problem is that, to make the commits order consistent,
> >>>>>>> some git force push command is unavoidable, which is risky to some
> >>>>>>> extent.
> >>>>>>>
> >>>>>>> So what is the recommended way to do this? Thanks in advance for
> >>>> your feedback!
> >>>>>>>
> >>>>>>> Best,
> >>>>>>> Liya Fan
> >>>>
> >>>
> >>
> >
>

Reply via email to