I had a quick look and it looks like clean well-thought-out code. I couldn’t 
figure what it was doing at a high level (e.g. what the generated URLs would 
look like), so I think some high-level comments would help.

+1

Thanks for your excellent work, Francis.

Julian


> On Mar 30, 2022, at 11:54 AM, Stamatis Zampetakis <[email protected]> wrote:
> 
> Hi Francis,
> 
> I went over the workflows and rules and everything looks good to me. Great
> work!
> 
> I'm +1 on merging this to master and I am OK with your suggestions about
> Avatica.
> 
> Thanks a lot for moving this forward. It will certainly save us a lot
> of time in the future.
> 
> When this goes in we need to update also our documentation. It will be a
> good opportunity to test that everything is working properly.
> 
> Best,
> Stamatis
> 
> On Wed, Mar 30, 2022, 7:50 AM Francis Chuang <[email protected]>
> wrote:
> 
>> Forgot to mention in my last message, but I am now implementing the
>> automation for calcite-avatica and calcite-avatica-go
>> 
>> For those 2 repos, we never used a site branch as we usually push the
>> site after a release. If there are any small updates to the site that
>> occur after the release, we just built from master and pushed it as
>> there is usually no unreleased updates to the docs due to avatica not
>> having much updates. This is the same situation for avatica-go.
>> 
>> Therefore, for calcite-avatica and calcite-avatica-go, I plan to:
>> - Always build from master if there's an update to site.
>> - For a release, build from master and build the javadocs and publish.
>> 
>> I think this should we sufficient for our use-case for now and should
>> improve the release process and site publishing process significantly.
>> If we find edge cases in the future, we can deal with those at a later
>> time.
>> 
>> Please let me know what you guys think.
>> 
>> Francis
>> 
>> On 30/03/2022 4:21 am, Julian Hyde wrote:
>>> I have never needed or wanted a versioned Javadoc URL for Calcite. Our
>> APIs tend to grow over time.
>>> 
>>> The only requirement I see is that we don’t pollute the javadoc/doc of
>> the latest released version with things that are not yet released. Which
>> would lead to two versions: latest release and head.
>>> 
>>> I can see that the implementation might be simpler if we have multiple
>> versions, but let’s be clear that that is not the requirement.
>>> 
>>> Julian
>>> 
>>> 
>>>> On Mar 29, 2022, at 6:49 AM, Fan Liya <[email protected]> wrote:
>>>> 
>>>> I think it is a good idea to provide versioned JavaDocs.
>>>> 
>>>> However, even if we only provide the JavaDoc of the latest release,
>>>> there is no need to maintain two branches (IMHO),
>>>> because the processes of updating the website and JavaDoc are
>>>> relatively separate processes (according to [1]).
>>>> With a single branch, it is feasible to update the website regularly,
>>>> and update JavaDocs only at release times.
>>>> 
>>>> Best,
>>>> Liya Fan
>>>> 
>>>> [1]
>> https://github.com/apache/calcite/blob/a6a1e2cef332893fd90286098869c56529e052c3/site/README.md
>>>> 
>>>> Alessandro Solimando <[email protected]> 于2022年3月29日周二
>> 17:59写道:
>>>>> 
>>>>> Hello everyone,
>>>>> I totally agree on automating the website publication and having a
>> single
>>>>> branch, the less we do manually, the lower the chances to mess
>> something up.
>>>>> 
>>>>> I am also in favour of versioned docs in the website, it's confusing to
>>>>> land on updated pages from an older context like a message from the ML.
>>>>> 
>>>>> Best regards,
>>>>> Alessandro
>>>>> 
>>>>> On Tue, 29 Mar 2022 at 06:44, Francis Chuang <[email protected]
>>> 
>>>>> wrote:
>>>>> 
>>>>>> Hey Julian,
>>>>>> 
>>>>>> All very good points. I can definitely see the utility of the
>> javadocs.
>>>>>> The analogue in Go would be godoc, with the difference being that the
>>>>>> godoc server automatically crawls the code across all versions to
>>>>>> generate the documentation.
>>>>>> 
>>>>>> As an example, see the godoc for protobuf [1]. There is a version
>>>>>> selector on the top left to look at the documentation for different
>>>>>> versions of the module / library in question.
>>>>>> 
>>>>>> You mentioned that you do not want to have a version string in the
>> URL.
>>>>>> Is there any particular reason for this? For example, if I were to end
>>>>>> up on the mailing list archives through a google search and there's a
>>>>>> message linking to the javadoc, it might be more helpful if the
>> javadoc
>>>>>> was linked to a particular version of the release so that the context
>>>>>> around the discussion at the time makes more sense.
>>>>>> 
>>>>>> We can have all javadocs for all releases of Calcite published and
>> have
>>>>>> a selector to jump between versions, similar to godoc, for example,
>> like
>>>>>> this javadoc for google cloud with a version selector on the bottom
>>>>>> right [2]. This would allow users to switch between different versions
>>>>>> and look at the version of the javadoc that's currently being used in
>>>>>> their project.
>>>>>> 
>>>>>> Regarding the documentation on the website itself, would it make sense
>>>>>> if we have a versioned copy for each release? Currently, we only
>> publish
>>>>>> the documentation for the latest release, so, if we were to look at
>>>>>> older messages from the mailing list and follow a link to the
>>>>>> documentation, the documentation could be incorrect or not relevant to
>>>>>> the message itself.
>>>>>> 
>>>>>> Maybe we can have a folder for each release? For example:
>>>>>> -
>>>>>> 
>> calcite.apache.org/docs/1.30.0/adapter.html#jdbc-connect-string-parameters
>>>>>> -
>>>>>> 
>> calcite.apache.org/docs/1.29.0/adapter.html#jdbc-connect-string-parameters
>>>>>> 
>>>>>> This would give each release their own documentation with a unique
>> path.
>>>>>> For the current unreleased version, we can still put it in version of
>>>>>> the next release:
>>>>>> 
>> calcite.apache.org/docs/1.31.0/adapter.html#jbc-connect-string-parameters
>>>>>> and
>>>>>> maybe have a message that says this is an unreleased version like
>>>>>> elasticsearch [3]. Links to this release's javadoc would work before
>> and
>>>>>> after the release and would never break.
>>>>>> 
>>>>>> The upside to this approach is that all documentation (even the
>>>>>> unreleased version) is published immediately, but they are versioned,
>> so
>>>>>> there is no confusion. It also means that users of Calcite master
>> would
>>>>>> be able to look at the docs online. This also simplifies the
>> deployment
>>>>>> of site as we no longer need the site branch: the website can just be
>>>>>> built from master.
>>>>>> 
>>>>>> Francis
>>>>>> 
>>>>>> [1] https://pkg.go.dev/google.golang.org/protobuf
>>>>>> [2] https://googleapis.dev/java/google-cloud-asset/latest/index.html
>>>>>> [3] https://www.elastic.co/guide/en/elastic-stack/master/index.html
>>>>>> 
>>> 
>> 

Reply via email to