Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 371550

Summary: Allow projects to update their own Info Centers
Product: Community Reporter: Ben Margolis <margolis>
Component: ServersAssignee: Eclipse Webmaster <webmaster>
Status: RESOLVED WORKSFORME QA Contact:
Severity: enhancement    
Priority: P3 CC: adolfosbh, david_williams, denis.roy, konstantin, stephan.herrmann, stepper
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Ben Margolis CLA 2012-02-14 17:30:47 EST
EGL Development Tools (EDT) seeks control of a public Info Center, either by a specific relationship (under what circumstances is this possible?) or by way of a more general change:  Committers would gain write permission to specific directories, and the files there would be copied automatically or in response to an automated request. In this way, committers would be be able to push changes to a specific Info Center, fast and often, with complementary benefits:  greater control of the public face of their work, and a reduced workload for the webmaster.

This request extends 369395:  https://bugs.eclipse.org/bugs/show_bug.cgi?id=369395
Comment 1 David Williams CLA 2012-02-14 18:04:43 EST
Ben (or Saul?) and I chatted via IM today, and seemed like a good idea to me. I would assume "direct access" would be an unnecessary security risk, but was wondering if there could be something like the signing queue and process, where only some people are given write access to a special "project info directory" and a cron job could check there every so often and if a jar appeared there, would copy it to the right (more restricted) place. That give some restrictions and traceability of who contributed which jars.
Comment 2 Stephan Herrmann CLA 2012-02-16 04:36:06 EST
Naive question: the info center is not a p2-enabled application that could use auto-update in order to fetch help bundles from release repositories of individual projects?

Maybe that would - if at all possible - open a whole new can of worms, just thought it could help decouple the questions (a) what bundles are in the info center and (b) which versions?
Comment 3 David Williams CLA 2012-02-24 17:21:45 EST
(In reply to comment #2)
> Naive question: the info center is not a p2-enabled application that could use
> auto-update in order to fetch help bundles from release repositories of
> individual projects?
> 
> Maybe that would - if at all possible - open a whole new can of worms, just
> thought it could help decouple the questions (a) what bundles are in the info
> center and (b) which versions?

I think this is an interesting idea ... I do not know if it could be done, or not. 

There might be someone who would know "off the top of their head" but suspect that code is so old, no one would know enough about it right off, nor how it is set up on eclipse, to know if that is possible. 

It'd be best (cool even) for someone to give it a try on their own little test server, and report back their success or not, with specific recommendations. 

Volunteers? :)
Comment 4 Denis Roy CLA 2012-03-15 10:48:14 EDT
(In reply to comment #3)
> It'd be best (cool even) for someone to give it a try on their own little test
> server, and report back their success or not, with specific recommendations. 
> 
> Volunteers? :)

+1

One thing we're probably doing wrong with help.eclipse.org is instantiate one running instance of eclipse for each version of the docs.  So essentially, help.eclipse.org is nothing more than 6 eclipses running, each taking their fair share of RAM, each having the infocenter listen on different TCP ports.  We bring them all together with Apache proxypass directives.

As I understand it, we could simply use Jetty, on one TCP port, and host all our docs on it.

If anyone can proof-of-concept this, and a system to allow committers to publish their own docs, I'd certainly supply the servers.
Comment 5 Ben Margolis CLA 2012-03-15 12:28:22 EDT
fyi, i'm a couple of weeks away from requesting an info center for the .8 release of the EDT project.  thereafter, i'd be requesting updates about as often as the webmasters would allow.

so, i'd be happy to be the test case for a new process.
Comment 6 Konstantin Komissarchik CLA 2012-06-12 12:36:06 EDT
> One thing we're probably doing wrong with help.eclipse.org is instantiate one
> running instance of eclipse for each version of the docs.  So essentially,
> help.eclipse.org is nothing more than 6 eclipses running, each taking their
> fair share of RAM, each having the infocenter listen on different TCP ports. 
> We bring them all together with Apache proxypass directives.
> 
> As I understand it, we could simply use Jetty, on one TCP port, and host all
> our docs on it.

To cross-reference discussion in Bug 379598, serving everything across releases with a single Jetty instance might work for static docs, but it will preclude supporting any form of dynamic content...
Comment 7 Konstantin Komissarchik CLA 2012-06-12 13:56:17 EDT
Just to throw out a thought...

If we had a tool to screen scrape contents of an infocenter into purely static content, then the resources to support help.eclipse.org would be drastically lower (no eclipse instances to run) and it would be cheap to support project-level infocenters for off-cycle releases.

The trick is to actually screen scrape (as opposed to re-use the doc bundles) as screen scraping captures a snapshot of dynamic content that might be present in some doc bundles.
Comment 8 Eike Stepper CLA 2012-06-14 00:33:27 EDT
I'm not sure if this is relevant but our build/promotion generates static info center-like doc pages. You can see them on each drop here: http://www.eclipse.org/cdo/downloads
Comment 9 Konstantin Komissarchik CLA 2012-06-14 12:19:29 EDT
> I'm not sure if this is relevant but our build/promotion generates static info
> center-like doc pages. You can see them on each drop here:
> http://www.eclipse.org/cdo/downloads

How do you produce this?
Comment 10 Denis Roy CLA 2012-06-14 13:24:17 EDT
> I'm not sure if this is relevant but our build/promotion generates static info
> center-like doc pages. You can see them on each drop here:

I love it.  I really do.
Comment 11 Eike Stepper CLA 2012-06-15 07:14:14 EDT
Thanks ;-)

The doc plugins are generated locally, mostly because Buckminster would either not create new version qualifiers or new ones for each build. The first would cause the plugins not to update via p2, the latter would cause them to update even if there are no changes (our doc plugins are large and don't change often). A better (Hudson build based) solution to this problem would be appreciated.

The doc plugins currently consist of javadocs, extension point docs and so called "articles". The articles are also authored as java classes with javadocs directly in the src folder of the doc plugins. The doc generator applies self-made doclets to produce the HTML with nice features, such as 

- Excel table rendering, http://download.eclipse.org/modeling/emf/cdo/drops/S20120605-0730/help/org.eclipse.emf.cdo.doc/html/reference/MappingStrategies.html

- Rendering of real code snippets (that participate in refactorings) into something that looks like a screenshot but is copyable text, http://download.eclipse.org/modeling/emf/cdo/drops/S20120605-0730/help/org.eclipse.emf.cdo.releng.help/html/writer/examples/CreatingTransportConnections.html

- Rendering of XML files, http://download.eclipse.org/modeling/emf/cdo/drops/S20120605-0730/help/org.eclipse.emf.cdo.releng.help/html/writer/examples/XmlSnippets.html

The source code for that is here: http://git.eclipse.org/c/cdo/cdo.git/tree/plugins/org.eclipse.emf.cdo.releng.help/src/org/eclipse/emf/cdo/releng/help/writer/examples

The generator for the entire docs is here: http://git.eclipse.org/c/cdo/cdo.git/tree/plugins/org.eclipse.emf.cdo.releng.doc/build.xml

The Ant scripts for the specific doc plugins are generated by AssembleScripts.java.

---

Then we have a fully automatic promotion service (a cron job) that picks up new Hudson builds, copies them to downloads.e.o, post-processes the new drops and finally generates a set of composite repositories and the static downloads page.

As part of the post-processing we unpack the doc plugins into a ".../drops/<build-id>/help" folder and insert the breadcrumbs into the HTML files.

---

I hope this was not too confusing. I'm still exhausted from the release preps :P
Comment 12 Denis Roy CLA 2021-12-20 12:23:15 EST
Current process seems to Just Work.