[ 
https://issues.apache.org/jira/browse/SOLR-10295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15930934#comment-15930934
 ] 

Jan Høydahl commented on SOLR-10295:
------------------------------------

Here's my dream scenario

Define only the PDF as the official guide release. The versioned online 
HTML-format guides are convenience versions, not officially signed etc. That 
gives us great freedom for how and where to place HTML versions, also without 
need for formal voting.

I would fully automate the build and publishing of the various versions of the 
HTML ref-guide though a new bot. The bot would watch git commits, build the 
HTML guide and publish it.

I think {{http://lucene.apache.org/solr/guide/}} would be a great landing page 
for the guide. It would be a page highlighting the latest official released 
guide, as well as linking to historic versions and also, less prominently, 
unreleased versions, such as master, branch_6x, branch_6_4 etc. This landing 
page could even be an SPA with auto generated links based on info we already 
have in [DOAP|https://projects.apache.org/json/projects/lucene-core.json] and 
git. So we would have

{noformat}
http://lucene.apache.org/solr/guide/ (main landing page)
http://lucene.apache.org/solr/guide/6_5/ (built from branch_6_5, this way we 
can release bugfixes simply by committing to the branch)
http://lucene.apache.org/solr/guide/branch_6x/ (build from branch_6x, next 
feature version to be released)
http://lucene.apache.org/solr/guide/master/ (build from master, next major 
version to be released)
http://lucene.apache.org/solr/guide/7_0/ (the permlink for Solr7 once it is 
released)
...
{noformat}

So the bot (some script we write but Infra hosts) will 
# monitor every lucene-solr git commit
# if branch in not master, or a release branch, or if commit does not modify 
refguide, then exit
# checkout the branch
# build ref-guide using ant, jekyll etc
# publish the resulting guide to the website under correct sub folder (see 
above).
#* Alternatively, publish to some other place such as www.solr-guide.com or 
wherever we want really.
# if JIRA issue mentioned in commit message, also add a comment to the JIRA 
issue with a link to the newly built version of the guide. 
#* Could even generate a list of deep-links to the individual guide pages 
changed by the commit, for easier review.
# if the build of the refguide fails, then post to the JIRA issue a relevant 
error message

The online, semi-live versioned copies of the guide should include a JS which 
alerts the user if he is looking at an old version of the guide or an 
unreleased version. In such a warning note, we could provide a link to current 
version and a dropdown to switch between all existing versions.

Perhaps we could learn some tricks from other Apache projects already using 
Asciidoc as well?

> Decide online location for Ref Guide HTML pages
> -----------------------------------------------
>
>                 Key: SOLR-10295
>                 URL: https://issues.apache.org/jira/browse/SOLR-10295
>             Project: Solr
>          Issue Type: Sub-task
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: documentation
>            Reporter: Cassandra Targett
>
> One of the biggest decisions we need to make is where to put the new Solr Ref 
> Guide. Confluence at least had the whole web-hosting bits figured out; we 
> have to figure that out on our own.
> An obvious (maybe only to me) choice is to integrate the Ref Guide with the 
> Solr Website. However, due to the size of the Solr Ref Guide (nearly 200 
> pages), I believe trying to publish it solely with existing CMS tools will 
> create problems similar to those described in the Lucene ReleaseTodo when it 
> comes to publishing the Lucene/Solr javadocs (see 
> https://wiki.apache.org/lucene-java/ReleaseTodo#Website_.2B-.3D_javadocs).
> A solution exists already, and it's what is done for the javadocs. From the 
> above link:
> {quote}
> The solution: skip committing javadocs to the source tree, then staging, then 
> publishing, and instead commit javadocs directly to the production tree. 
> Ordinarily this would be problematic, because the CMS wants to keep the 
> production tree in sync with the staging tree, so anything it finds in the 
> production tree that's not in the staging tree gets nuked. However, the CMS 
> has a built-in mechanism to allow exceptions to the 
> keep-production-in-sync-with-staging rule: extpaths.txt.
> {quote}
> This solution (for those who don't know already) is to provide a static text 
> file (extpaths.txt) that includes the javadoc paths that should be presented 
> in production, but which won't exist in CMS staging environments. This way, 
> we can publish HTML files directly to production and they will be preserved 
> when the staging-production trees are synced.
> The rest of the process would be quite similar to what is documented in the 
> ReleaseTodo in sections following the link above - use SVN to update the CMS 
> production site and update extpaths.txt properly. We'd do this in the 
> {{solr}} section of the CMS obviously, and not the {{lucene}} section.
> A drawback to this approach is that we won't have a staging area to view the 
> Guide before publication. Files would be generated and go to production 
> directly. We may want to put a process in place to give some additional 
> confidence that things look right first (someone's people.apache.org 
> directory? a pre-pub validation script that tests...something...?), and agree 
> on what we'd be voting on when a vote to release comes up. However, the CMS 
> is pretty much the only option that I can think of...other ideas are welcome 
> if they might work.
> We also need to agree on URL paths that make sense, considering we'll have a 
> new "site" for each major release - something like 
> {{http://lucene.apache.org/solr/ref-guide/6_1}} might work? Other thoughts 
> are welcome on this point also.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to