Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

 

Introduction

This document describes how to work the current NetBeans website(s) http://www.netbeans.org and http://platform.netbeans.org (and others possibly added later) into the new site being developed for the move to Apache. The new site has a specific look and feel which we would like to keep uniform. One of the rules at Apache is the site can not have a "back end server" other than 3rd party services such as discuss and mailing lists etc as this imposes things in infra which they can not afford to manage at this time, so a static site generator (SSG) will be used to allow for templates, writing, and blog style editing.

This is a pattern used by other projects at the ASF. Groovy as an example wrote their own. This document describes the site layout, how to use the SSG JBake in this context, a set of Gradle build files, and set of JSoup dependent Groovy scripts used to crop or scrape document content from existing pages to be placed into content files which get embedded in the new web site. Eventually the Groovy scripts will no longer be needed, and should go away; they are essentially tools for now.

Domain Names

The Apache NetBeans Incubating project has the domains http://netbeans.org and http://netbeans.apache.org. The suggestion at the moment is to redirect netbeans.apache.org to netbeans.org. If that is frowned upon, then it is suggested both netbeans.org and netbeans.apache.org have the same content, but have the domains point to the same information in site configuration (assuming this is httpd at Apache). This allows for the Apache domain branding to be used, and it allows for the history of NetBeans to be preserved which has proliferated for ~20 years or more at this point.

Envisioned Generated Site Layout

As much of the current NB site directory structure layout should be used as possible. This means things such as https://netbeans.org/kb/index.html and https://netbeans.org/kb/trails/java-se.html will continue to work if folks have permalinked them. There are certainly sections which may not translate directly to Apache or our current point in time, and we'll need to redirect to the home page in such cases (or something more reasonable). Too, assets and media should be rearranged. Currently CSS and JS are scattered in nonintuitive places such as under /images_www, and the CSS is under various directories. This should be better organized into either a top down layout such as:

/images

/css

/js

or

/images

/assets

/css

/js

Or, the site should be organized more along the lines of web components. At the moment, the current site seems a mild hodgepodge albeit those more web component type things reside under sub-structures in /images_www, and could still be considered more top down. For the sake of getting the site over to Apache, it is suggested a top down approach matching either of the above can be fine, and either will require the same amount of effort for scripted replacements of the current content to get it into the needed SSG structure.

New Site Plan

Converting the existing site to JBake will require a Gradle build setup, JBake configuration, a project structure, templates and layout, choices between page types and site sections, and some scripts to modify the current "content" files to match what JBake needs. This section will layout what that is. The output of these scripts, builds, templates, and content should deliver the envisioned generated site layout. This is obviously just a starting point at this time to be tweaked with other community members, but gets the SSG in place, to then be styled and beautified as needed.

This has been started at https://github.com/wadechandler/netbeans-static-site which is a temporary repository to get the build in place along with trimming out bloat (think Git history) which will not be needed or allowed at Apache. The build and site is documented in a README.md file, and all contributors are encouraged to read it fully as a first step.

There are also other aspects to keep in mind. There are portions of the old NetBeans site related to very old information such as Enterprise support and competitions which will not mean very much or as much at Apache. Some portions of the site, such as downloads and issue uploading, are not something we can manage from the site at Apache either. We will need to house the information and services in different places. So, these things will need to be replaced, and part of the overall plan will include this.

For issues related to the website see this this query https://issues.apache.org/jira/issues?jql=project%20%3D%20NETBEANS%20AND%20status%20in%20(Open%2C%20"In%20Progress"%2C%20Reopened)%20AND%20component%20%3D%20website

 

Script Conversion of Knowledge Base Sections HTML Files to Site Content

The kb or Knowledge Base section of the site needs converted. This is best handled with scripting to match what the site project and SSG need. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-124

Script Conversion of Community Sections HTML Files to Site Content

The "Community" sections of the site needs converted. This is best handled with scripting to match what the site project and SSG need. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-124

Script Conversion of Features Sections HTML Files to Site Content

The "Features" sections of the site needs converted. This is best handled with scripting to match what the site project and SSG need. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-124

Script Conversion of Platform Sections HTML Files to Site Content

The "Platform" sections of the site needs converted. This is best handled with scripting to match what the site project and SSG need. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-124

Replace Downloads Service

We need to look at other Apache sites, and see how they integrate downloads. The current NetBeans site has a special download section which allows one to selected different types of installers/products such as PHP, Web Apps, C/C++, Java, Full, etc. It needs to be decided how this can/will work, and if Apache has something similar which we can use.  See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-120

Replace Downloads Section

We need to look at other Apache sites download sections, and work up content and a template for this. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-120

Replace Updates Section

The current NetBeans site has the releases update catalog URLs held under an "updates" folder. This doesn't really make sense to keep under a static site. This should be under some more dynamically updated location much like the plugin portal update center file should be kept as well as downloads. We need to understand what to do with this, and make it happen. For the updates links, perhaps it makes sense to have them under areas like downloads where they are accessible by mirrors for the IDE to help spread the load (or perhaps stored in the Maven repository) See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-195

Replace About Section

The about section needs to be updated to match the project at Apache. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-155

Replace UI Gestures Service

There is a UI gestures module in the NetBeans IDE which has currently been removed. This is something really good to have. A new service needs to be built based on the information collected from the service, and then moved to Apache. This will require something being run under infra. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-197

Replace UI Gestures Section

Other than the service mentioned above, the issue also references reports, graphs, and statistics shown on the NetBeans web site here http://statistics.netbeans.org/analytics/. This seems extremely useful to the community when deciding where to focus, issues, etc. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-198

Replace Plugin Portal Service

See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-201
 and http://plugins.netbeans.org/

Replace Plugin Portal Section

See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-202
and http://plugins.netbeans.org/

Relocate DTDs and NS (XML Schemas)

The NetBeans site has various DTDs and XML Schemas under the directories dtds and ns. These resources are more related to different projects in NetBeans (such as project and file support). This does not seem the proper place for these things. See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-150
 and 
Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-152

Update or Replace Books Section

The books section is dated and really needs to be organized in some way (perhaps some way to filter on page) See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-199

Remove or Replace Switch Section

The NetBeans site has a section called "Switch". Do we want this at Apache? It is probably all in good fun and all, but still, it needs updated at a minimum, and too, do we want to keep it up? See 

Jira
serverASF JIRA
serverId5aa69414-a9e9-3523-82ec-879b028fb15b
keyNETBEANS-200

 

Interim Plan For Site Maintenance

Reasoning

Until we have tools selected and a process for editing the site, we need to limit patterns or idiom leak, the number of people editing the site, and the amount of new content moved into the site. This section is to have at least some interim process. This process can be hashed out in a series of email threads and votes on the Apache NetBeans (Incubating) dev list.

Process

TBD

Site Generation/Build Tools

Reasoning

Why would we want a site generation/build tool versus statically maintaining a site? Branding and time. Imagine we had to edit X number of files to replace a footer or header versus editing a single file. What if we had to edit X pages just to replace the site logo? This would be horribly time consuming, and as we grow here at Apache will become great overhead impacting accuracy and possibly releases.

The purpose of this section is to enumerate criteria for tool selection, enumerate some tools matching the criteria on the surface, and then research those tools to see how easy they are to use, as well as how well they work, and how and if we can integrate them into Apache processes and automation.

A good starting point are the various git site repositories located and found at this url https://github.com/apache?utf8=true&q=site where we can research how their sites are built. If anyone knows of some tool they believe works wonderfully for this, then please add them to the list.

Tool Selection Criteria

This criteria should be sorted out on the Apache NetBeans (Incubating) dev mailing list as a series of threads and votes.

TBD

Possible Tools

TBD

Envisioned Generated Site Layout

Before we configure what ever tool is chosen, we should hash out what the layout will be for the generated site. Some of this layout may be derived from conventions of what ever tool we select should we agree this is reasonable, but should be driven by Apache processes of threads and votes on the Apache NetBeans (Incubating) dev mailing list.

TBD