Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace the "Status of the Python branches" table with a csv. #884

Merged
merged 12 commits into from
Nov 10, 2022

Conversation

ezio-melotti
Copy link
Member

@ezio-melotti ezio-melotti commented Jun 6, 2022

This PR fixes #883.

I kept the Sphinx markup in the csv, or otherwise it would have been lost. The markup should be easy enough to remove while parsing, and it only affects PEPs and dates. I checked if there was a way to include a separate column without markup and then ignore it in the table, but there's no such option.

While I was at it, I also fixed the column widths. Here's a comparison of the result (csv table on top, old one below):

image

Copy link
Member

@Mariatta Mariatta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The csv table looks much cleaner this way.

@encukou
Copy link
Member

encukou commented Jun 6, 2022

Could you convert the EOL table as well? https://devguide.python.org/devcycle/#end-of-life-branches

@ezio-melotti
Copy link
Member Author

If we start adding more csv files, I wonder if it would make sense to add them in a new include dir. The reasons for doing this are:

  • if people start using the files now, and then we move them, we will break their scripts;
  • the root dir is already crowded with rst (and other files);
  • I'm planning to add more files in Machine-parsable developers list #848.

@ezio-melotti
Copy link
Member Author

Relevant discussion about the two tables (cc @hugovk, @encukou): endoflife-date/endoflife.date#711

@ezio-melotti
Copy link
Member Author

I updated the PR to include the end-of-life table, and moved both the csvs in a new include directory.
I'll wait after #901 is done to merge this, as to not create additional conflicts in that PR.

@AA-Turner
Copy link
Member

Does auto work for widths?

Another option would be to combine the CSVs, and use a very simple extension in conf.py to split them by EOL/active and add the italics -- that would allow for easier parsing for external consumers such as endoflife.date.

A

@ezio-melotti
Copy link
Member Author

Does auto work for widths?

I can give that a try. I set those widths manually in order to keep each row in a single line (see e.g. the screenshots in the first message).

Another option would be to combine the CSVs,

I'm trying to gather some feedback from the endoflife folks and pydotorg in order to figure out their needs. If it turns out that a single table is better, I can combine them.

and use a very simple extension in conf.py to split them by EOL/active and add the italics -- that would allow for easier parsing for external consumers such as endoflife.date.

What extension? I also don't like too much the rst markup in the csv, especially the :pep:`...`s applied to all the PEPs in the PEP column, but the italic is not applied to all rows and it's easy enough to remove afterwards that it's probably better to keep it there.

@ezio-melotti
Copy link
Member Author

Hmm, locally the tables look fine after removing the :widths:, but on https://cpython-devguide--884.org.readthedocs.build/#status-of-python-branches they don't. Here I tested with both Sphinx 5.0.1 and 5.0.2 -- perhaps readthedocs is using an older version?

@CAM-Gerlach
Copy link
Member

CAM-Gerlach commented Jul 6, 2022

For reference, this is how they look in FF on Windows on the preview.

Screenshot

image

I checked if there was a way to include a separate column without markup and then ignore it in the table, but there's no such option.

You could use Sphinx CSV Filter, both to include/exclude specific columns (e.g. with/without markup), and also to only include specific rows (e.g. that are marked EOL or not). That would avoid having to write a custom directive.

@ezio-melotti
Copy link
Member Author

I updated the PR after the Devguide reorganization, reintroduced the :widths: to fix the rendering issues and also to make both tables consistent, and fixed a few other minor things.

I'm not sure if it's worth unifying the two CSVs and/or tables, since that adds an extra dependency and complexity.

@CAM-Gerlach
Copy link
Member

I'm not sure if it's worth unifying the two CSVs and/or tables, since that adds an extra dependency and complexity.

You could just put them in the same table, since there's already a Status column, if there were an easy way to clearly separate supported from unsupported statuses (e.g. by row color). But I'm not sure if there is.

include/branches.csv Outdated Show resolved Hide resolved
Co-authored-by: Hugo van Kemenade <[email protected]>
@hugovk
Copy link
Member

hugovk commented Nov 3, 2022

I'll wait after #901 is done to merge this, as to not create additional conflicts in that PR.

#901 is now merged.

Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would be useful to have machine-readable data, for example to automate https://python-release-cycle.glitch.me/

JSON would be preferred but CSV should be fine too.

(https://endoflife.date/api/python.json doesn't do prereleases.)

Copy link
Member

@CAM-Gerlach CAM-Gerlach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A couple updates to the release dates

include/branches.csv Outdated Show resolved Hide resolved
include/branches.csv Outdated Show resolved Hide resolved
Co-authored-by: C.A.M. Gerlach <[email protected]>
include/branches.csv Outdated Show resolved Hide resolved
@ezio-melotti ezio-melotti merged commit 10cb312 into python:main Nov 10, 2022
@ezio-melotti ezio-melotti deleted the branches-csv branch November 10, 2022 03:08
@ezio-melotti
Copy link
Member Author

As discussed in the docs meeting, I now merged this. There are more changes we are considering, e.g. merging the two table or creating a JSON file that is then used to create these CSVs, but those will be handled in separate PRs.

@encukou
Copy link
Member

encukou commented Nov 10, 2022

FWIW, I think the source should be a human-writable format, and we should generate a JSON for the machines to consume (like https://peps.python.org/api/peps.json). And we should tell people to expect the source format to change whenever we feel like it.
(That'll need a Sphinx plugin, but if we want to move the formatting out of the tables, one will be needed anyway.)

@hugovk
Copy link
Member

hugovk commented Nov 10, 2022

Thanks! Let's continue on python/docs-community#67.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Provide the status of Python branches and versions as a csv
6 participants