diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 000000000..f4d553f06
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,27 @@
+{
+ "name": "Jekyll",
+ "image": "mcr.microsoft.com/devcontainers/base:debian",
+ "containerEnv": {
+ "ENV LANG": "en_US.UTF-8",
+ "LANGUAGE": "en_US:en",
+ "TZ": "Etc/UTC",
+ "LANG": "en_US.UTF-8"
+ },
+ "features": {
+ "ghcr.io/devcontainers-contrib/features/ruby-asdf:0": {
+ // Cf Ruby version in https://pages.github.com/versions/
+ "version": "2.7.4"
+ }
+ },
+ "postCreateCommand": [
+ ".devcontainer/post-create.sh"
+ ],
+ "forwardPorts": [
+ // Jekyll server
+ 4000,
+ // Live reload server
+ 35729
+ ],
+ // Set `remoteUser` to `root` to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
+ "remoteUser": "vscode"
+}
\ No newline at end of file
diff --git a/.devcontainer/post-create.sh b/.devcontainer/post-create.sh
new file mode 100755
index 000000000..8332052f5
--- /dev/null
+++ b/.devcontainer/post-create.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# Install the version of Bundler.
+if [ -f Gemfile.lock ] && grep "BUNDLED WITH" Gemfile.lock >/dev/null; then
+ tail -n 2 Gemfile.lock | grep -C2 "BUNDLED WITH" | tail -n 1 | xargs gem install bundler -v
+fi
+
+# If there's a Gemfile, then run `bundle install`
+# It's assumed that the Gemfile will install Jekyll too
+if [ -f Gemfile ]; then
+ bundle install
+fi
+
+bundle exec jekyll --version
diff --git a/Gemfile b/Gemfile
index fe7b28ded..3bacc514f 100644
--- a/Gemfile
+++ b/Gemfile
@@ -7,12 +7,12 @@ source "https://rubygems.org"
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
-gem "jekyll", "~> 4.2.0"
+# gem "jekyll", "~> 4.2.0"
# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.5"
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
# uncomment the line below. To upgrade, run `bundle update github-pages`.
-# gem "github-pages", group: :jekyll_plugins
+gem "github-pages", group: :jekyll_plugins
# If you have any plugins, put them here!
group :jekyll_plugins do
gem "jekyll-feed", "~> 0.12"
diff --git a/Gemfile.lock b/Gemfile.lock
index fc4869f7c..5a344f612 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,83 +1,270 @@
GEM
remote: https://rubygems.org/
specs:
- addressable (2.8.0)
- public_suffix (>= 2.0.2, < 5.0)
+ activesupport (6.0.6.1)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 0.7, < 2)
+ minitest (~> 5.1)
+ tzinfo (~> 1.1)
+ zeitwerk (~> 2.2, >= 2.2.2)
+ addressable (2.8.6)
+ public_suffix (>= 2.0.2, < 6.0)
+ base64 (0.2.0)
+ coffee-script (2.4.1)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.12.2)
colorator (1.1.0)
- concurrent-ruby (1.1.8)
- em-websocket (0.5.2)
+ commonmarker (0.23.10)
+ concurrent-ruby (1.2.3)
+ dnsruby (1.70.0)
+ simpleidn (~> 0.2.1)
+ em-websocket (0.5.3)
eventmachine (>= 0.12.9)
- http_parser.rb (~> 0.6.0)
+ http_parser.rb (~> 0)
+ ethon (0.16.0)
+ ffi (>= 1.15.0)
eventmachine (1.2.7)
- ffi (1.15.0)
+ execjs (2.9.1)
+ faraday (2.8.1)
+ base64
+ faraday-net_http (>= 2.0, < 3.1)
+ ruby2_keywords (>= 0.0.4)
+ faraday-net_http (3.0.2)
+ ffi (1.16.3)
forwardable-extended (2.6.0)
- http_parser.rb (0.6.0)
- i18n (1.8.9)
+ gemoji (4.1.0)
+ github-pages (231)
+ github-pages-health-check (= 1.18.2)
+ jekyll (= 3.9.5)
+ jekyll-avatar (= 0.8.0)
+ jekyll-coffeescript (= 1.2.2)
+ jekyll-commonmark-ghpages (= 0.4.0)
+ jekyll-default-layout (= 0.1.5)
+ jekyll-feed (= 0.17.0)
+ jekyll-gist (= 1.5.0)
+ jekyll-github-metadata (= 2.16.1)
+ jekyll-include-cache (= 0.2.1)
+ jekyll-mentions (= 1.6.0)
+ jekyll-optional-front-matter (= 0.3.2)
+ jekyll-paginate (= 1.1.0)
+ jekyll-readme-index (= 0.3.0)
+ jekyll-redirect-from (= 0.16.0)
+ jekyll-relative-links (= 0.6.1)
+ jekyll-remote-theme (= 0.4.3)
+ jekyll-sass-converter (= 1.5.2)
+ jekyll-seo-tag (= 2.8.0)
+ jekyll-sitemap (= 1.4.0)
+ jekyll-swiss (= 1.0.0)
+ jekyll-theme-architect (= 0.2.0)
+ jekyll-theme-cayman (= 0.2.0)
+ jekyll-theme-dinky (= 0.2.0)
+ jekyll-theme-hacker (= 0.2.0)
+ jekyll-theme-leap-day (= 0.2.0)
+ jekyll-theme-merlot (= 0.2.0)
+ jekyll-theme-midnight (= 0.2.0)
+ jekyll-theme-minimal (= 0.2.0)
+ jekyll-theme-modernist (= 0.2.0)
+ jekyll-theme-primer (= 0.6.0)
+ jekyll-theme-slate (= 0.2.0)
+ jekyll-theme-tactile (= 0.2.0)
+ jekyll-theme-time-machine (= 0.2.0)
+ jekyll-titles-from-headings (= 0.5.3)
+ jemoji (= 0.13.0)
+ kramdown (= 2.4.0)
+ kramdown-parser-gfm (= 1.1.0)
+ liquid (= 4.0.4)
+ mercenary (~> 0.3)
+ minima (= 2.5.1)
+ nokogiri (>= 1.13.6, < 2.0)
+ rouge (= 3.30.0)
+ terminal-table (~> 1.4)
+ github-pages-health-check (1.18.2)
+ addressable (~> 2.3)
+ dnsruby (~> 1.60)
+ octokit (>= 4, < 8)
+ public_suffix (>= 3.0, < 6.0)
+ typhoeus (~> 1.3)
+ html-pipeline (2.14.3)
+ activesupport (>= 2)
+ nokogiri (>= 1.4)
+ http_parser.rb (0.8.0)
+ i18n (1.14.1)
concurrent-ruby (~> 1.0)
- jekyll (4.2.0)
+ jekyll (3.9.5)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
- i18n (~> 1.0)
- jekyll-sass-converter (~> 2.0)
+ i18n (>= 0.7, < 2)
+ jekyll-sass-converter (~> 1.0)
jekyll-watch (~> 2.0)
- kramdown (~> 2.3)
- kramdown-parser-gfm (~> 1.0)
+ kramdown (>= 1.17, < 3)
liquid (~> 4.0)
- mercenary (~> 0.4.0)
+ mercenary (~> 0.3.3)
pathutil (~> 0.9)
- rouge (~> 3.0)
+ rouge (>= 1.7, < 4)
safe_yaml (~> 1.0)
- terminal-table (~> 2.0)
- jekyll-feed (0.15.1)
+ jekyll-avatar (0.8.0)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-coffeescript (1.2.2)
+ coffee-script (~> 2.2)
+ coffee-script-source (~> 1.12)
+ jekyll-commonmark (1.4.0)
+ commonmarker (~> 0.22)
+ jekyll-commonmark-ghpages (0.4.0)
+ commonmarker (~> 0.23.7)
+ jekyll (~> 3.9.0)
+ jekyll-commonmark (~> 1.4.0)
+ rouge (>= 2.0, < 5.0)
+ jekyll-default-layout (0.1.5)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-feed (0.17.0)
jekyll (>= 3.7, < 5.0)
+ jekyll-gist (1.5.0)
+ octokit (~> 4.2)
+ jekyll-github-metadata (2.16.1)
+ jekyll (>= 3.4, < 5.0)
+ octokit (>= 4, < 7, != 4.4.0)
+ jekyll-include-cache (0.2.1)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-mentions (1.6.0)
+ html-pipeline (~> 2.3)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-optional-front-matter (0.3.2)
+ jekyll (>= 3.0, < 5.0)
+ jekyll-paginate (1.1.0)
+ jekyll-readme-index (0.3.0)
+ jekyll (>= 3.0, < 5.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
- jekyll-sass-converter (2.1.0)
- sassc (> 2.0.1, < 3.0)
- jekyll-seo-tag (2.7.1)
+ jekyll-relative-links (0.6.1)
+ jekyll (>= 3.3, < 5.0)
+ jekyll-remote-theme (0.4.3)
+ addressable (~> 2.0)
+ jekyll (>= 3.5, < 5.0)
+ jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0)
+ rubyzip (>= 1.3.0, < 3.0)
+ jekyll-sass-converter (1.5.2)
+ sass (~> 3.4)
+ jekyll-seo-tag (2.8.0)
jekyll (>= 3.8, < 5.0)
+ jekyll-sitemap (1.4.0)
+ jekyll (>= 3.7, < 5.0)
+ jekyll-swiss (1.0.0)
+ jekyll-theme-architect (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-cayman (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-dinky (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-hacker (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-leap-day (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-merlot (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-midnight (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-minimal (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-modernist (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-primer (0.6.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-github-metadata (~> 2.9)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-slate (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-tactile (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-theme-time-machine (0.2.0)
+ jekyll (> 3.5, < 5.0)
+ jekyll-seo-tag (~> 2.0)
+ jekyll-titles-from-headings (0.5.3)
+ jekyll (>= 3.3, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
- kramdown (2.3.1)
+ jemoji (0.13.0)
+ gemoji (>= 3, < 5)
+ html-pipeline (~> 2.2)
+ jekyll (>= 3.0, < 5.0)
+ kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
- liquid (4.0.3)
- listen (3.5.0)
+ liquid (4.0.4)
+ listen (3.8.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
- mercenary (0.4.0)
+ mercenary (0.3.6)
+ mini_portile2 (2.8.6)
minima (2.5.1)
jekyll (>= 3.5, < 5.0)
jekyll-feed (~> 0.9)
jekyll-seo-tag (~> 2.1)
+ minitest (5.22.2)
+ nokogiri (1.16.5)
+ mini_portile2 (~> 2.8.2)
+ racc (~> 1.4)
+ octokit (4.25.1)
+ faraday (>= 1, < 3)
+ sawyer (~> 0.9)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
- public_suffix (4.0.6)
- rb-fsevent (0.10.4)
+ public_suffix (5.0.4)
+ racc (1.7.3)
+ rb-fsevent (0.11.2)
rb-inotify (0.10.1)
ffi (~> 1.0)
- rexml (3.2.5)
- rouge (3.26.0)
+ rexml (3.3.6)
+ strscan
+ rouge (3.30.0)
+ ruby2_keywords (0.0.5)
+ rubyzip (2.3.2)
safe_yaml (1.0.5)
- sassc (2.4.0)
- ffi (~> 1.9)
- terminal-table (2.0.0)
+ sass (3.7.4)
+ sass-listen (~> 4.0.0)
+ sass-listen (4.0.0)
+ rb-fsevent (~> 0.9, >= 0.9.4)
+ rb-inotify (~> 0.9, >= 0.9.7)
+ sawyer (0.9.2)
+ addressable (>= 2.3.5)
+ faraday (>= 0.17.3, < 3)
+ simpleidn (0.2.1)
+ unf (~> 0.1.4)
+ strscan (3.1.0)
+ terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
thread_safe (0.3.6)
- tzinfo (1.2.9)
+ typhoeus (1.4.1)
+ ethon (>= 0.9.0)
+ tzinfo (1.2.11)
thread_safe (~> 0.1)
- tzinfo-data (1.2021.1)
+ tzinfo-data (1.2024.1)
tzinfo (>= 1.0.0)
- unicode-display_width (1.7.0)
+ unf (0.1.4)
+ unf_ext
+ unf_ext (0.0.9.1)
+ unicode-display_width (1.8.0)
wdm (0.1.1)
+ zeitwerk (2.6.13)
PLATFORMS
ruby
DEPENDENCIES
- jekyll (~> 4.2.0)
+ github-pages
jekyll-feed (~> 0.12)
jekyll-redirect-from (= 0.16)
minima (~> 2.5)
diff --git a/README.md b/README.md
index c4e99a12e..5e887a149 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,14 @@
This site uses Jekyll. You can find instructions for how to install and configure Jekyll on [https://jekyllrb.com/docs/](https://jekyllrb.com/docs/).
+You may also use a tool or service supporting [Development Containers](https://containers.dev/), such as Visual Studio Code or GitHub Codespaces. In that case, your development environment is already set up and includes Jekyll with the right version.
+
+Run Jekyll with:
+
+```bash
+bundle exec jekyll serve --livereload
+```
+
## How to Contribute
You can contribute by:
- writing an article,
diff --git a/_config.yml b/_config.yml
index 5fb00d4d6..c98ad91e2 100644
--- a/_config.yml
+++ b/_config.yml
@@ -19,14 +19,14 @@
# in the templates via {{ site.myvariable }}.
title: "RustPython"
-description: "An open source Python 3 (CPython >= 3.9.0) interpreter written in Rust 🐍 😱 🤘"
+description: "An open source Python 3 (CPython >= 3.11.0) interpreter written in Rust 🐍 😱 🤘"
# baseurl: "/" # the subpath of your site, e.g. /blog
url: "https://rustpython.github.io" # the base hostname & protocol for your site, e.g. http://example.com
github_username: RustPython
disclaimer: "RustPython is in a development phase and should not be used in production or a fault intolerant setting. Our current build supports only about half of the Python standard library."
github: https://github.com/RustPython/RustPython/
docs: https://github.com/RustPython/docs/
-gitter: https://gitter.im/rustpython/Lobby
+discord: https://discord.com/invite/vru8NypEhv
show_excerpts: true
contributor_excerpt: "" # TODO: write something here, goes right under "Contributors" heading
blog-intro: Create an issue if you see something wrong. Edit posts or create new ones via PR on github.com/RustPython/rustpython.github.io
@@ -41,12 +41,18 @@ navigation:
url: /docs
- title: GitHub
url: https://github.com/RustPython/RustPython/
- - title: Gitter
- url: https://gitter.im/rustpython/Lobby
+ - title: Discord
+ url: https://discord.com/invite/vru8NypEhv
dashboards:
- title: CPython test compatibility
url: /pages/regression-tests-results.html
+ - title: What's left
+ url: /pages/whats-left
+ - title: Benchmarks
+ url: /benchmarks
+ - title: Website Analytics
+ url: https://plausible.io/rustpython.github.io
# Build settings
theme: minima
diff --git a/_data/regrtests_results.json b/_data/regrtests_results.json
index 8d4632961..29085085a 100644
--- a/_data/regrtests_results.json
+++ b/_data/regrtests_results.json
@@ -1 +1 @@
-{"suites": {"0": {"name": "FutureTest", "class": "FutureTest", "module": "test.test___future__.FutureTest", "description": null, "cases": {"0": {"name": "test_attributes", "method": "test_attributes", "result": "passed", "description": null, "note": null, "errors": null, "failures": null, "screenshots": [], "new_version": "No", "execution_time": "0.0010"}, "1": {"name": "test_names", "method": "test_names", "result": "passed", "description": null, "note": null, "errors": null, "failures": null, "screenshots": [], "new_version": "No", "execution_time": "0.0003"}}, "used_case_names": {}, "num_passed": 2, "num_failed": 0, "num_skipped": 0, "num_expected_failures": 0, "execution_time": "0.0012"}, "1": {"name": "TestABCWithInitSubclass", "class": "TestABCWithInitSubclass", "module": "test.test_abc.test_factory.