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

make switcher match gh-pages #2007

Merged
merged 3 commits into from
Oct 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,10 +71,19 @@ jobs:
destination_dir: dev
keep_files: false

- name: Publish to Github Pages on release
- name: Publish to Github Pages on release (versioned)
if: ${{ github.event_name == 'release' }}
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/_build/html/
destination_dir: ${{ github.ref_name }}

- name: Publish to Github Pages on release (latest)
if: ${{ github.event_name == 'release' }}
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: docs/_build/html/
destination_dir: latest
keep_files: false
Comment on lines +88 to +89
Copy link
Contributor

Choose a reason for hiding this comment

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

If I read this correctly, these 2 lines will "re-deploy" to latest every time this executes, thus, having the latest docs always available in that dir. Nice and simple. Makes sense to me. ☺️

7 changes: 2 additions & 5 deletions docs/_static/switcher.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,9 @@
"url": "https://python-visualization.github.io/folium/dev/"
},
{
"name": "latest (v0.17.0)",
"version": "latest",
"url": "https://python-visualization.github.io/folium/v0.17.0/"
},
{
"version": "v0.17.0",
"url": "https://python-visualization.github.io/folium/v0.17.0/"
"url": "https://python-visualization.github.io/folium/latest/"
},
{
"version": "v0.16.0",
Expand Down
36 changes: 20 additions & 16 deletions docs/update_switcher.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import argparse
import json
import os
import re


def main():
Expand All @@ -21,31 +22,34 @@ def main():
with open(switcher_path) as f:
switcher = json.load(f)

# Find index of 'latest' entry
latest_index = None
# first we get the version number of the previous version
for i, version in enumerate(switcher):
if version["version"] == "latest":
latest_index = i
previous_version = re.search(
r"latest \(([v.\d]+)\)", version["name"]
).group(1)
if previous_version == args.version:
print(f"Version {args.version} already is the latest version. Exiting.")
return

# now replace the name of this one with the new version
switcher[i]["name"] = f"latest ({args.version})"
break
if latest_index is None:
else:
Copy link
Contributor

Choose a reason for hiding this comment

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

I didn't even realize this kind of for / if / break / else combo was possible. TIL, interesting. 👍

raise ValueError("'latest' version not found in switcher.json")

# Add the new version to the list of versions (we always insert it after latest)
new_version = {
"version": args.version,
"url": f"https://python-visualization.github.io/folium/{args.version}/",
}

# Update the latest version
switcher[latest_index]["url"] = new_version["url"]

# Make sure version is unique
if any(version["version"] == args.version for version in switcher):
# Add the previous version to the list of versions (we always insert it after latest)
if any(version["version"] == previous_version for version in switcher):
print(
f"Version {args.version} already exists in switcher.json. Not adding it again."
f"Previous version {previous_version} already exists in switcher.json. Not adding it again."
)
else:
switcher.insert(latest_index + 1, new_version)
previous_version_entry = {
"version": previous_version,
"url": f"https://python-visualization.github.io/folium/{previous_version}/",
}
switcher.insert(latest_index + 1, previous_version_entry)

# Write the updated switcher.json
with open(switcher_path, "w") as f:
Expand Down