plone / training

Plone Trainings
https://training.plone.org
Creative Commons Attribution 4.0 International
58 stars 89 forks source link

Curate Trainings #672

Closed stevepiercy closed 1 year ago

stevepiercy commented 2 years ago

We have several outdated, unmaintained, and unsupported trainings. We need to curate them. @polyester, @pbauer, @ksuess, and I discussed how to proceed. We should notify Authors to update their trainings, and let Authors know of their planned status. Here's the suggested plan in sequence.

Communication

Deployment of archive

Deployment of main

Annual deployment

@pbauer @ksuess @polyester @spereverde @fredvd please let me know if this sounds reasonable or if I missed anything.

stevepiercy commented 2 years ago

@plone/documentation-team @plone/training-authors @plone/training-team @pbauer @ksuess @spereverde would y'all please review the spreadsheet (https://docs.google.com/spreadsheets/d/1Wmg03uXD3fIRYz33xPFnzaFbLYdxjhKq10NAKDswFxg/edit#gid=0) and let me know whether the information is correct, especially whether or not to retain or archive each of the trainings that is currently published?

I will create a post to the Community Forum this week to announce archival of old trainings for transparency.

Thank you!

stevepiercy commented 1 year ago

It's time to try to clean up the Trainings once again. @fredvd said I will be granted access to the machines that host Training and Documentation so that I can manage these things. However we need to make sure I know any history that should be preserved.

@pbauer @ksuess @polyester @spereverde @fredvd @ericof please review the above plan and linked spreadsheet, and let me know if there is anything that should be changed or considered. Thank you!

ksuess commented 1 year ago

https://training.plone.org/volto/index.html is still valid. The PloneConf 2022 training "Volto and React" is as far as I know a combo of trainings "React", "Volto" and "Volto Hands-On".

ksuess commented 1 year ago

@stevepiercy, your plan sounds reasonable to me.

ksuess commented 1 year ago

My current and urgent problem is: Google lists links to for example https://training.plone.org/5/mastering-plone/dexterity.html instead of https://training.plone.org/mastering-plone/dexterity.html (without '/5/') This would not bother me if https://training.plone.org/5/ would show the same as https://training.plone.org/. But '/5/' is outdated, no clue which tag or branch or whatever this points to.

stevepiercy commented 1 year ago

My current and urgent problem is: Google lists links to for example https://training.plone.org/5/mastering-plone/dexterity.html instead of https://training.plone.org/mastering-plone/dexterity.html (without '/5/') This would not bother me if https://training.plone.org/5/ would show the same as https://training.plone.org/. But '/5/' is outdated, no clue which tag or branch or whatever this points to.

Would a redirect permanent 301 from /5/ to /2022/ handle this satisfactorily? Or should it be to /?

ksuess commented 1 year ago

My current and urgent problem is: Google lists links to for example https://training.plone.org/5/mastering-plone/dexterity.html instead of https://training.plone.org/mastering-plone/dexterity.html (without '/5/') This would not bother me if https://training.plone.org/5/ would show the same as https://training.plone.org/. But '/5/' is outdated, no clue which tag or branch or whatever this points to.

Would a redirect permanent 301 from /5/ to /2022/ handle this satisfactorily? Or should it be to /?

I think a redirect permanent 301 from /5/ to /2022/ would be fine, as this is the snapshot, you were speaking about. I am still curious where this /5/ code lives, as I cannot see a tag or branch for this.

The important point of my problem is, that only the main training.plone.org should be indexed and listed in search results of Google, etc.., not training.plone.org/5/ nor training.plone.org/2022/. For this an authorized person needs insight in the web server setup. Without this insight, currently I have no clue, why Google does not already list training.plone.org/ (instead of training.plone.org/5/) I hope I could describe it now a bit better…

stevepiercy commented 1 year ago

The important point of my problem is, that only the main training.plone.org should be indexed and listed in search results of Google, etc.., not training.plone.org/5/ nor training.plone.org/2022/.

If you don't want them indexed, then we should delete old trainings. I don't think we want to do that. I think there is value in retaining older trainings as well as older versions of specific trainings and allowing them to be indexed. The whole purpose of using a year in the URL is to indicate to the reader that this training occurred in a given year and might not be up-to-date. We can do that with an announcement banner, which the theme supports.

Do we instead want to deploy a snapshot at a different hostname? This would be similar to Plone Documentation versions and branches. For example, should we do:

why Google does not already list training.plone.org/ (instead of training.plone.org/5/)

Good question. I can look into the Matomo stats. I suspect that there are still a lot of external links that contain 5 in their URL. External links are a key factor for SEO ranking.

I updated the todo list at the top of this issue. Now they are logically grouped together, and I revised a few items for clarity.

fredvd commented 1 year ago

@ksuess I had a quick chat with Paul. I forgot myself, but the redirect for both training and docs are defined in an Ansible setup we have used and are still using for the current docs.plone.org. Here they are:

"docs.plone.org":
  locations:
    - location: "~^/3/?(.*)$"
      alias: "/var/www/docs.plone.org/3/$1"
    - location: "~^/4/?(.*)$"
      alias: "/var/www/docs.plone.org/4/$1"
  rewrites:
    - "^/5/en/(.*)$ https://docs.plone.org/$1 last"
    - "^/5/en$ https://docs.plone.org last"
    - "^/5$ https://docs.plone.org last"
    - "^/4$ https://docs.plone.org/4/en last"
    - "^/3$ https://docs.plone.org/3/en last"
    - "^/reference_manuals/external/plone.api/? http://docs.plone.org/develop/plone.api/docs/index.html permanent"
    - "^/reference_manuals/external/plone.app.robotframework/? http://docs.plone.org/external/plone.app.robotframework/docs/source/index.html permanent"
    - "^/reference_manuals/external/plone.app.theming/? http://docs.plone.org/external/plone.app.theming/docs/index.html permanent"
    - "^/views/more_view_examples.html? https://docs.plone.org/develop/plone/views/more_view_examples.html permanent"
    - "^/external/plone.api(.*)$ https://docs.plone.org/develop/plone.api$1 permanent"

"training.plone.org":
  aliases: []

  locations:
    - location: "~^/5/?(.*)$"
      alias: "/var/www/training.plone.org/5/$1"
    - location: "~^/4/?(.*)$"
      alias: "/var/www/training.plone.org/4/$1"

This is what gets applied to the nginx config. (edit, I wrote apache before)

ksuess commented 1 year ago

The important point of my problem is, that only the main training.plone.org should be indexed and listed in search results of Google, etc.., not training.plone.org/5/ nor training.plone.org/2022/.

If you don't want them indexed, then we should delete old trainings. I don't think we want to do that. I think there is value in retaining older trainings as well as older versions of specific trainings and allowing them to be indexed. The whole purpose of using a year in the URL is to indicate to the reader that this training occurred in a given year and might not be up-to-date. We can do that with an announcement banner, which the theme supports.

Do we instead want to deploy a snapshot at a different hostname? This would be similar to Plone Documentation versions and branches. For example, should we do:

* `training.plone.org` - Default and `main` branch

* `2022.training.plone.org` - Trainings from PloneConf 2022 (and earlier) and `2022` branch

* `2023.training.plone.org` - Trainings from PloneConf 2023 only and `2023` branch

why Google does not already list training.plone.org/ (instead of training.plone.org/5/)

Good question. I can look into the Matomo stats. I suspect that there are still a lot of external links that contain 5 in their URL. External links are a key factor for SEO ranking.

I updated the todo list at the top of this issue. Now they are logically grouped together, and I revised a few items for clarity.

+1 from me for all the above.

Just to be sure, that we are speaking of the same when speaking about archiving. This means deleting the training identified as outdated (-> Google sheet). They are still available under /2022/*

Your hint that obviously many external links still exist that have the form /5/ is very valuable. So if we can reduce these external links and no crazy stuff is configured, then Googling would lead me to training.plone.org/ and not training.plone.org/5/**.

:-)

ksuess commented 1 year ago
  • location: "~^/5/?(.*)$" alias: "/var/www/training.plone.org/5/$1"

Thank you @fredvd, now we know where /2022/ should be deployed to.

stevepiercy commented 1 year ago

For Matomo stats, I checked entry pages since we started collecting stats, and /5/ is not in the list. @fredvd is that the correct place in Matomo to look for where people come from?

stevepiercy commented 1 year ago

Changes to plan:

Deployment of archive

Add location on server:

This was replaced:

...with this:

Added:

stevepiercy commented 1 year ago

Just to be sure, that we are speaking of the same when speaking about archiving. This means deleting the training identified as outdated (-> Google sheet). They are still available under /2022/*

Correct, but with a modification, per discussion. Archived trainings would be available in the branch 2022 and at the URL 2022.training.plone.org. We would remove outdated/obsolete trainings from main and training.plone.org.

Your hint that obviously many external links still exist that have the form /5/ is very valuable. So if we can reduce these external links and no crazy stuff is configured, then Googling would lead me to training.plone.org/ and not training.plone.org/5/**.

This theory has no supporting evidence, unless I misinterpreted Matomo stats. In any case a redirect permanent from 5 to 2022 should kill off 5 and we can slap an announcement banner on the page to warn users if they should happen to land there. We can also add a robots.txt to remove it from indexing, as Google is pretty good about that. I've added that to the plan:

Deployment of archive

polyester commented 1 year ago

Google search dashboard would be our friend here; it's pretty good at assigning which versions of URL's are canonical.

I can probably do this, but at @work crunch this week, so can't really tend to that until the weekend

stevepiercy commented 1 year ago

Google search dashboard would be our friend here; it's pretty good at assigning which versions of URL's are canonical.

Should I have access to this as well?

polyester commented 1 year ago

yes, you should. Let me try to work through the horrible Google UI when it's not late at night here

stevepiercy commented 1 year ago

@alecpm @calvinhp @cdw9 @cekk @ebrehault @ericof @fulv @jackahl @jensens @ksuess @mrtango @oz123 @pbauer @robgietema @smcmahon @sneridagh @thet @tiberiuichim @tomgross @tschorr you are an author or presenter of a Plone training. Please review the plan at the top of this issue, and reply by 2023-03-31 if you think that we should change whether your training should be archived or retained. Thank you for your collaboration!

cdw9 commented 1 year ago

I agree Transmogrifier can be archived

ebrehault commented 1 year ago

I agree Angular SDK for Plone can be archived.

cekk commented 1 year ago

You can archive gatsby too

tschorr commented 1 year ago

I agree Deploying and Operating Plone on WSGI can be archived.

jensens commented 1 year ago

I confirm "retain" for "Plone Deployment". cc @ericof

pbauer commented 1 year ago

I agree with the plan.

pbauer commented 1 year ago

The Plone Workflow training should be retained though since it it is still 100% valid.

There is also Use, Integrate and develop Patterns for Plone 6 Classic which is not part of the repo but should be in the list of trainings.

stevepiercy commented 1 year ago

The Plone Workflow training should be retained though since it it is still 100% valid.

Updated to "retain".

There is also Use, Integrate and develop Patterns for Plone 6 Classic which is not part of the repo but should be in the list of trainings.

Should it be moved into this repo, not just a link to an external site? The Sphinx Book Theme, which is based on PyData Theme, might support its functionality.

Also is the training in a separate repo? I could not find it.

ksuess commented 1 year ago

It's weekend, I know, no hurry please.

Remark: A redirect of /5/ to 2022.training.plone.org/ with a banner "this is a 2022 snapshot. See training.plone.org" gets more importance since a newby posts /5/ urls on community.plone.org, which is outdated.

spereverde commented 1 year ago

I agree with the plan. I'll have a better look at the spreadsheet after the weekend Just to know, is there some place where we can still find an overview of the archived trainings if they will no longer be indexed. I ask because sometimes they could still provide some insight for bugfixing or general "historical" info.

tomgross commented 1 year ago

Most of the Solr training is still relevant but I have no plans to update it. If no one wants to take over it can be archived.

stevepiercy commented 1 year ago

Remark: A redirect of /5/ to 2022.training.plone.org/ with a banner "this is a 2022 snapshot. See training.plone.org" gets more importance since a newby posts /5/ urls on community.plone.org, which is outdated.

Thanks for catching that. Updated the plan for this item:

stevepiercy commented 1 year ago

Just to know, is there some place where we can still find an overview of the archived trainings if they will no longer be indexed.

Thank you for the reminder. It was discussed, but I forgot to include it. I have added it to the plan as this item:

stevepiercy commented 1 year ago

Most of the Solr training is still relevant but I have no plans to update it. If no one wants to take over it can be archived.

I think we can say this for all archived trainings: "This training may still be useful for the latest Plone versions, but it may need to be updated. We seek contributors who still use this training to update or maintain it for the latest versions." Or something to that effect.

ksuess commented 1 year ago

You gave the trainings "React an Volto", @jackahl and @iFlameing. Is the "Volto" training superseeded by "Volto Hands-On" training? Should "Volto" training be retained or archived, what do you think?

stevepiercy commented 1 year ago

You gave the trainings "React an Volto", @jackahl and @iFlameing. Is the "Volto" training superseeded by "Volto Hands-On" training? Should "Volto" training be retained or archived, what do you think?

During the Volto Team meeting, we confirmed the plan. Only "Volto" training will be archived, and the other three retained.

stevepiercy commented 1 year ago

I've created PRs to update links in preparation for the cutover to archive old trainings. Some cannot be merged until we have https://2022.training.plone.org/ ready.

Next up, work on upgrading the theme to the latest versions.

stevepiercy commented 1 year ago

Here's the preview: https://deploy-preview-752--plone-training.netlify.app/

And the PR: https://github.com/plone/training/pull/752.

This theme upgrade is needed primarily to thoroughly test it for its application to Documentation and other Plone docs, but also to take advantage of features that are only available in the latest version, such as an announcement banner.

stevepiercy commented 1 year ago

Moving forward!

I updated the todo list.

I removed the mention of creating a tag, because a branch name is adequate for this project.

I removed "Add robots.txt to 2022 so that it is no longer indexed." because we actually do want the old trainings to be indexed and searched, and it is fine to do that with the banner announcement.

stevepiercy commented 1 year ago

This is now complete. Thank you everyone for your contributions to make this happen. 🎉 🍺