apache / www-site

The ASF Website
Apache License 2.0
47 stars 110 forks source link

Restore automated update of front page project content from original design #93

Closed sebbASF closed 1 year ago

sebbASF commented 3 years ago

When it was originally set up, the front page would automatically display a random selection of projects.

However following a redesign (prior to the move to Pelican), this stopped working, and the page was changed to use fixed content, generated from randomly selected data. This meant that the projects only changed when there was a change to the site. As this happened infrequently, it was decided to set up a regular rebuild.

This is not exactly the most efficient process, and generates a lot of unnecessary page commit updates.

It would be good if something like the original process could be restored.

This might require JavaScript, but there could be a fall-back for the few visitors that don't support JS.

dave2wave commented 3 years ago

This is choosing different projects and podlings in a very similar manner at the same cadence as before.

dave2wave commented 3 years ago

Here is a commit email from today:

The following commit(s) were added to refs/heads/asf-site by this push:
    new f31b833  Automatic Site Publish by Buildbot
f31b833 is described below

commit f31b8332520c6d9ef3242b34df44e7e0bd0940bb
Author: buildbot <users@infra.apache.org>
AuthorDate: Mon Sep 13 16:23:37 2021 +0000

   Automatic Site Publish by Buildbot
---
output/index.html | 70 +++++++++++++++++++++++++++----------------------------
1 file changed, 35 insertions(+), 35 deletions(-)

diff --git a/output/index.html b/output/index.html
index 7afc54f..e0259f4 100644
--- a/output/index.html
+++ b/output/index.html
@@ -553,48 +553,48 @@ Open Source Apache projects used in every Internet-connected country on the&nbsp
<div class="tabbable tabs-left visible-md-inline visible-lg-inline">
<ul class="nav nav-tabs">
<li class="active">
-<a data-toggle="tab" href="#knox">Knox</a>
+<a data-toggle="tab" href="#ofbiz">OFBiz</a>
</li><li>
-<a data-toggle="tab" href="#directory">Directory</a>
+<a data-toggle="tab" href="#aries">Aries</a>
</li><li>
-<a data-toggle="tab" href="#mynewt">Mynewt</a>
+<a data-toggle="tab" href="#kafka">Kafka</a>
</li>
</ul>
</div>
</div>
<div class="col-md-9 col-sm-12">
<div class="tab-content">
-<div class="tab-pane fade in active" id="knox">
+<div class="tab-pane fade in active" id="ofbiz">
<div class="row">
<div class="col-sm-2">
-<img alt="Logo" class="img-responsive center-block" src="/logos/res/knox/default.png"/>
+<img alt="Logo" class="img-responsive center-block" src="/logos/res/ofbiz/default.png"/>
</div>
<div class="col-sm-10">
-<h4 class="no-btm-margin" id="featured-project-knox"><a href="http://knox.apache.org/">Knox</a></h4>
-<p>Simplify and normalize the deployment and implementation of secure Hadoop clusters</p>
-<a class="btn btn-default btn-sm" href="http://knox.apache.org/" role="button">Learn More...</a>
+<h4 class="no-btm-margin" id="featured-project-ofbiz"><a href="http://ofbiz.apache.org/">OFBiz</a></h4>
+<p>Enterprise automation software</p>
+<a class="btn btn-default btn-sm" href="http://ofbiz.apache.org/" role="button">Learn More...</a>
</div>
</div>
-</div><div class="tab-pane fade in" id="directory">
+</div><div class="tab-pane fade in" id="aries">
<div class="row">
<div class="col-sm-2">
-<img alt="Logo" class="img-responsive center-block" src="/logos/res/directory/default.png"/>
+<img alt="Logo" class="img-responsive center-block" src="/logos/res/aries/default.png"/>
</div>
<div class="col-sm-10">
-<h4 class="no-btm-margin" id="featured-project-directory"><a href="http://directory.apache.org/">Directory</a></h4>
-<p>Apache Directory Server</p>
-<a class="btn btn-default btn-sm" href="http://directory.apache.org/" role="button">Learn More...</a>
+<h4 class="no-btm-margin" id="featured-project-aries"><a href="http://aries.apache.org/">Aries</a></h4>
+<p>Enterprise OSGi application programming model</p>
+<a class="btn btn-default btn-sm" href="http://aries.apache.org/" role="button">Learn More...</a>
</div>
</div>
-</div><div class="tab-pane fade in" id="mynewt">
+</div><div class="tab-pane fade in" id="kafka">
<div class="row">
<div class="col-sm-2">
-<img alt="Logo" class="img-responsive center-block" src="/logos/res/mynewt/default.png"/>
+<img alt="Logo" class="img-responsive center-block" src="/logos/res/kafka/default.png"/>
</div>
<div class="col-sm-10">
-<h4 class="no-btm-margin" id="featured-project-mynewt"><a href="http://mynewt.apache.org/">Mynewt</a></h4>
-<p>embedded OS optimized for networking and built for remote management of constrained devices</p>
-<a class="btn btn-default btn-sm" href="http://mynewt.apache.org/" role="button">Learn More...</a>
+<h4 class="no-btm-margin" id="featured-project-kafka"><a href="http://kafka.apache.org/">Kafka</a></h4>
+<p>Distributed publish-subscribe messaging system</p>
+<a class="btn btn-default btn-sm" href="http://kafka.apache.org/" role="button">Learn More...</a>
</div>
</div>
</div>
@@ -614,48 +614,48 @@ Open Source Apache projects used in every Internet-connected country on the&nbsp
<div class="tabbable tabs-left visible-md-inline visible-lg-inline">
<ul class="nav nav-tabs">
<li class="active">
-<a data-toggle="tab" href="#streampipes">StreamPipes</a>
+<a data-toggle="tab" href="#tuweni">Tuweni</a>
</li><li>
-<a data-toggle="tab" href="#milagro">Milagro</a>
+<a data-toggle="tab" href="#spot">Spot</a>
</li><li>
-<a data-toggle="tab" href="#training">Training</a>
+<a data-toggle="tab" href="#yunikorn">YuniKorn</a>
</li>
</ul>
</div>
</div>
<div class="col-md-9 col-sm-12">
<div class="tab-content">
-<div class="tab-pane fade in active" id="streampipes">
+<div class="tab-pane fade in active" id="tuweni">
<div class="row">
<div class="col-sm-2">
<img alt="Logo" class="img-responsive center-block" src="/logos/res/incubator/default.png"/>
</div>
<div class="col-sm-10">
-<h4 class="no-btm-margin" id="incubating-project-streampipes"><a href="http://streampipes.incubator.apache.org/">StreamPipes</a></h4>
-<p>StreamPipes is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore (Industrial) IoT data streams.</p>
-<a class="btn btn-default btn-sm" href="http://streampipes.incubator.apache.org/" role="button">Learn More...</a>
+<h4 class="no-btm-margin" id="incubating-project-tuweni"><a href="http://tuweni.incubator.apache.org/">Tuweni</a></h4>
+<p>Tuweni is a set of libraries and other tools to aid development of blockchain and other decentralized software in Java and other JVM languages.</p>
+<a class="btn btn-default btn-sm" href="http://tuweni.incubator.apache.org/" role="button">Learn More...</a>
</div>
</div>
-</div><div class="tab-pane fade in" id="milagro">
+</div><div class="tab-pane fade in" id="spot">
<div class="row">
<div class="col-sm-2">
-<img alt="Logo" class="img-responsive center-block" src="/logos/res/milagro/default.png"/>
+<img alt="Logo" class="img-responsive center-block" src="/logos/res/spot/default.png"/>
</div>
<div class="col-sm-10">
-<h4 class="no-btm-margin" id="incubating-project-milagro"><a href="http://milagro.incubator.apache.org/">Milagro</a></h4>
-<p>Milagro is core security infrastructure and crypto libraries for decentralized networks and distributed systems.</p>
-<a class="btn btn-default btn-sm" href="http://milagro.incubator.apache.org/" role="button">Learn More...</a>
+<h4 class="no-btm-margin" id="incubating-project-spot"><a href="http://spot.incubator.apache.org/">Spot</a></h4>
+<p>Apache Spot is a platform for network telemetry built on an open data model and Apache Hadoop.</p>
+<a class="btn btn-default btn-sm" href="http://spot.incubator.apache.org/" role="button">Learn More...</a>
</div>
</div>
-</div><div class="tab-pane fade in" id="training">
+</div><div class="tab-pane fade in" id="yunikorn">
<div class="row">
<div class="col-sm-2">
-<img alt="Logo" class="img-responsive center-block" src="/logos/res/training/default.png"/>
+<img alt="Logo" class="img-responsive center-block" src="/logos/res/yunikorn/default.png"/>
</div>
<div class="col-sm-10">
-<h4 class="no-btm-margin" id="incubating-project-training"><a href="http://training.incubator.apache.org/">Training</a></h4>
-<p>The Training project aims to develop resources which can be used for training purposes in various media formats, languages and for various Apache and non-Apache target projects.</p>
-<a class="btn btn-default btn-sm" href="http://training.incubator.apache.org/" role="button">Learn More...</a>
+<h4 class="no-btm-margin" id="incubating-project-yunikorn"><a href="http://yunikorn.incubator.apache.org/">YuniKorn</a></h4>
+<p>YuniKorn is a standalone resource scheduler responsible for scheduling batch jobs and long-running services on large scale distributed systems running in on-premises environments as well as different public clouds.</p>
+<a class="btn btn-default btn-sm" href="http://yunikorn.incubator.apache.org/" role="button">Learn More...</a>
</div>
</div>
</div>
sebbASF commented 3 years ago

I think you have missed the point.

The regular builds do change the selection of projects, but why rebuild the entire site just to choose a different 3 entries from a rarely changing list of projects? This results in much unnecessary computation (the build is not clever enough to only recreate a few pages, unlike with the CMS), and furthermore results in lots of unnecessary changes in the repo history.

As I recall, the original design was able to select a random sample of 3 entries from the entire set each time the page was loaded by a user. The site only had to be rebuilt when there was a real change. Much more efficient, as well as more variation for the user.

dave2wave commented 3 years ago

Your issue is with the redesign from a few years ago and not the move to Pelican. Pick another title for your issue.

This is how Pelican works. The asf-site branch commit is only for the one page.

Ultimately it is up to press@ what to do here.

sebbASF commented 3 years ago

The move to Pelican has not changed the effect on the source repo - this is still being updated unnecessarily.

However, AFAICT using Pelican does impact the resources needed, as it cannot build individual files.

There are thus two reasons why it would be good to restore the original design:

dave2wave commented 3 years ago

There is no significant churn. Certainly a Lua approach like used for downloads is possible ... Now please keep in mind that the hourly churn picks up other changes like: