diff --git a/.browserslistrc b/.browserslistrc index af704886..1b3243a1 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -1,6 +1,13 @@ # Browsers that we support +>0.25% +last 3 versions defaults -not IE 11 -not last 0 OperaMini version -not last 0 OperaMobile version +not Android < 5 +not Edge < 19 +not KaiOS < 3 +not OperaMini all +not OperaMobile < 13 +not QQAndroid >= 0 +not UCAndroid >= 0 +not dead diff --git a/.codespellrc b/.codespellrc index 290c5442..d95756bc 100644 --- a/.codespellrc +++ b/.codespellrc @@ -3,5 +3,6 @@ builtin = clear,rare,informal,code,names check-filenames = check-hidden = enable-colors = -ignore-words-list = sur +ignore-words-list = jupyter,lite,sur +quiet-level = 32 skip = .codespellrc,.gitattributes diff --git a/.csslintrc b/.csslintrc deleted file mode 100644 index bd86c5a9..00000000 --- a/.csslintrc +++ /dev/null @@ -1,46 +0,0 @@ -{ - "ignore": [ - "adjoining-classes", - "box-model", - "box-sizing", - "bulletproof-font-face", - "compatible-vendor-prefixes", - "fallback-colors", - "floats", - "font-sizes", - "ids", - "import-ie-limit", - "important", - "known-properties", - "outline-none", - "overqualified-elements", - "qualified-headings", - "regex-selectors", - "shorthand", - "unique-headings", - "universal-selector", - "unqualified-attributes" - ], - "warnings": [ - ], - "errors": [ - "display-property-grouping", - "duplicate-background-images", - "duplicate-properties", - "empty-rules", - "errors", - "font-faces", - "gradients", - "import", - "order-alphabetical", - "rules-count", - "selector-max-approaching", - "selector-max", - "selector-newline", - "star-property-hack", - "text-indent", - "underscore-property-hack", - "vendor-prefix", - "zero-units" - ] -} diff --git a/.eslintrc.json b/.eslintrc.json index 9ed7dba4..efa7ef14 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,11 +4,14 @@ "es2021": true, "jquery": true }, - "extends": ["standard"], + "extends": [ + "standard", + "prettier" + ], "parserOptions": { "ecmaVersion": 12 }, "rules": { - "no-var": 0 + "no-var": "off" } } diff --git a/.gitattributes b/.gitattributes index dae0bc4d..8b521664 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,7 +1,8 @@ +# Standard gitattributes config + # Set the default behavior, in case people don't have core.autocrlf set. * text eol=lf - # Explicitly declare text files you want to always be normalized and converted # to native line endings on checkout. @@ -32,7 +33,7 @@ *.Rmd text *.rnw text *.Rnw text -*.sh text +*.sh text eol=lf *.zsh text eol=lf # Documentation diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..379c803b --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,47 @@ +# Build the site and deploy it to GitHub pages +name: Build + +on: # yamllint disable-line rule:truthy + push: + branches: + - master + - main + - '*.*' + - 'staging*' + pull_request: + branches: + - master + - main + - '*.*' + - 'staging*' + +jobs: + build: + name: Build and Deploy + + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + submodules: true + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + shell: bash + run: ./ci/install.sh + - name: List dependencies + shell: bash + run: pip list + - name: Build site + shell: bash + run: ./ci/build.sh + - name: Deploy to GitHub Pages + if: (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master') && github.event_name != 'pull_request' + uses: JamesIves/github-pages-deploy-action@v4 + with: + FOLDER: ./website-lektor-icon-build + CLEAN: true # Remove deleted files from the deploy branch diff --git a/.github/workflows/deploy.yaml b/.github/workflows/deploy.yaml deleted file mode 100644 index 68ea7187..00000000 --- a/.github/workflows/deploy.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# Build the project and deploy it to GitHub pages -name: Deploy - -on: # yamllint disable-line rule:truthy - push: - branches: - - master - - main - -jobs: - deploy: - name: Build and Deploy Site - - runs-on: ubuntu-latest - - steps: - - name: Checkout website repository - uses: actions/checkout@v3 - with: - submodules: true - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - name: Install dependencies - shell: bash - run: ./ci/install.sh - - name: Build with Lektor - shell: bash - run: ./ci/build.sh - - name: Deploy to GitHub Pages - uses: JamesIves/github-pages-deploy-action@v4 - with: - FOLDER: ./website-lektor-icon-build # The folder the action should deploy - CLEAN: true # Automatically remove deleted files from the deploy branch diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index 09fbd85c..4835065a 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -22,17 +22,11 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout website repository - uses: actions/checkout@v3 - with: - submodules: true + - name: Checkout repository + uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.x' - - name: Install baseline dependencies - run: python -m pip install --upgrade pip setuptools wheel - - name: Install development dependencies - run: python -m pip install --upgrade -r requirements-dev.txt - - name: Run main Pre-Commit hooks + - name: Run pre-commit hooks uses: pre-commit/action@v3.0.0 diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml deleted file mode 100644 index d4bcc158..00000000 --- a/.github/workflows/test.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# Build the project and test that it works correctly -name: Test - -on: # yamllint disable-line rule:truthy - push: - branches: - - 'staging*' - pull_request: - branches: - - master - - main - - '*.*' - - 'staging*' - -jobs: - deploy: - name: Build Site - - runs-on: ubuntu-latest - - steps: - - name: Checkout website repository - uses: actions/checkout@v3 - with: - submodules: true - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - name: Install dependencies - shell: bash - run: ./ci/install.sh - - name: Build with Lektor - shell: bash - run: ./ci/build.sh diff --git a/.gitignore b/.gitignore index d7ef1f82..26e37b2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,18 @@ # Standard gitignore list # Archive files +*.7z +*.bz2 *.gz -*.zip +*.lzma +*.lzma2 *.tar *.xz +*.zip # Temporary / backup files *.bak +*.swp *.tmp *.temp @@ -24,6 +29,10 @@ __pycache__/ *.so # Distribution / packaging +*.egg +*.egg-info/ +.eggs/ +.installed.cfg .Python bin/ build/ @@ -31,19 +40,15 @@ develop-eggs/ dist/ downloads/ eggs/ -.eggs/ lib/ lib64/ +MANIFEST parts/ +pip-wheel-metadata/ sdist/ +share/python-wheels/ var/ wheels/ -pip-wheel-metadata/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST # PyInstaller # Usually these files are written by a python script from a template @@ -56,21 +61,20 @@ pip-log.txt pip-delete-this-directory.txt # Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* .cache -nosetests.xml -coverage.xml *.cover +.coverage +.coverage.* .hypothesis/ +.nox/ .pytest_cache/ +.tox/ +coverage.xml +htmlcov/ +nosetests.xml # Translations *.mo -*.pot # Django stuff: *.log @@ -102,14 +106,7 @@ ipython_config.py # pyenv .python-version -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# celery beat schedule file +# Celery beat schedule file celerybeat-schedule # SageMath parsed files @@ -119,8 +116,8 @@ celerybeat-schedule .env .venv env/ -venv/ ENV/ +venv/ VENV/ env.bak/ venv.bak/ @@ -161,3 +158,14 @@ nppBackup/ # VSCode files .vscode/ + +# Kate +.directory +.swp.* +*.swp + +# PyPi configuration +.pypirc + +# Other files +toread.md diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 91701c8c..f77ac690 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,7 +1,9 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks -minimum_pre_commit_version: '2.8.2' +# Hooks and config updated 2023-11-01 + +minimum_pre_commit_version: '2.10.0' default_language_version: python: python3 @@ -17,7 +19,7 @@ repos: # General fixers - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.5.0 hooks: - id: trailing-whitespace name: Trim trailing whitespace @@ -34,7 +36,7 @@ repos: # More general fixers - repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.3.0 + rev: v1.5.1 hooks: - id: remove-tabs name: Replace tabs with spaces @@ -44,7 +46,7 @@ repos: # Check and fix spelling - repo: https://github.com/codespell-project/codespell - rev: v2.1.0 + rev: v2.2.6 hooks: # Define separate hooks for checking and correcting spelling errors # since codespell doesn't print verbose output when writing changes @@ -56,6 +58,14 @@ repos: exclude: '\.gitattributes' args: [--write-changes] +# Format CSS with Prettier +- repo: https://github.com/pre-commit/mirrors-prettier + rev: v3.0.3 + hooks: + - id: prettier + name: Format CSS (Prettier) + types: [css] + # Lint and fix CSS with stylelint - repo: https://github.com/awebdeveloper/pre-commit-stylelint rev: '0.0.2' @@ -64,23 +74,16 @@ repos: name: Lint and fix CSS (stylelint) args: [--fix, --color, --maxWarnings, '0'] additional_dependencies: - - 'stylelint@14.9.1' - - 'stylelint-config-standard@26.0.0' - - 'stylelint-csstree-validator@2.0.0' - - 'stylelint-declaration-block-no-ignored-properties@2.5.0' - - 'stylelint-no-unsupported-browser-features@5.0.3' - - 'stylelint-order@5.0.0' - -# Lint CSS with CSSlint -- repo: https://github.com/pre-commit/mirrors-csslint - rev: v1.0.5 - hooks: - - id: csslint - name: Check CSS (CSSlint) + - 'stylelint@15.11.0' + - 'stylelint-config-standard@34.0.0' + - 'stylelint-csstree-validator@3.0.0' + - 'stylelint-declaration-block-no-ignored-properties@2.7.0' + - 'stylelint-no-unsupported-browser-features@7.0.0' + - 'stylelint-order@6.0.3' # Pretty-format INI - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.4.0 + rev: v2.11.0 hooks: - id: pretty-format-ini name: Format INI @@ -88,18 +91,27 @@ repos: exclude: 'configs/disqus-comments\.ini' args: [--autofix] +# Format JavaScript with Prettier +- repo: https://github.com/pre-commit/mirrors-prettier + rev: v3.0.3 + hooks: + - id: prettier + name: Format JavaScript (Prettier) + types: [javascript] + # Lint and fix JavaScript - repo: https://github.com/eslint/eslint - rev: v8.20.0 + rev: v8.52.0 hooks: - id: eslint name: Lint and fix JavaScript (ESLint) args: [--fix, --max-warnings, '0', --color --report-unused-disable-directives] additional_dependencies: - - 'eslint-config-standard@17.0.0' - - 'eslint-plugin-import@2.25.4' - - 'eslint-plugin-n@15.2.4' - - 'eslint-plugin-promise@6.0.0' + - 'eslint-config-standard@17.1.0' + - 'eslint-config-prettier@v9.0.0' + - 'eslint-plugin-import@2.29.0' + - 'eslint-plugin-n@16.2.0' + - 'eslint-plugin-promise@6.1.1' # Lint Jinja - repo: https://github.com/thibaudcolas/curlylint @@ -112,7 +124,7 @@ repos: # Check JSON - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.5.0 hooks: - id: check-json name: Check JSON @@ -127,7 +139,7 @@ repos: # Lint Markdown - repo: https://github.com/igorshubovych/markdownlint-cli - rev: v0.32.0 + rev: v0.37.0 hooks: - id: markdownlint name: Lint Markdown @@ -135,15 +147,16 @@ repos: # Check Python dependencies - repo: https://github.com/Lucas-C/pre-commit-hooks-safety - rev: v1.3.0 + rev: v1.3.2 hooks: - id: python-safety-dependencies-check - name: Run Safety check on dependencies - files: 'requirements*.txt' + name: Check Python dependencies (Safety) + files: '.*requirements.*.txt' + types: [text] # Check TOML and XML - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.5.0 hooks: - id: check-toml name: Check TOML @@ -152,7 +165,7 @@ repos: # Pretty-format YAML - repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks - rev: v2.4.0 + rev: v2.11.0 hooks: - id: pretty-format-yaml name: Format YAML @@ -160,14 +173,14 @@ repos: # Check YAML - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.5.0 hooks: - id: check-yaml name: Check YAML # Lint YAML - repo: https://github.com/adrienverge/yamllint.git - rev: v1.27.1 + rev: v1.32.0 hooks: - id: yamllint name: Lint YAML @@ -176,7 +189,7 @@ repos: # Replace CRLF with LF post-prettify - repo: https://github.com/Lucas-C/pre-commit-hooks - rev: v1.3.0 + rev: v1.5.1 hooks: - id: remove-crlf name: Replace CRLFs with LF @@ -187,13 +200,13 @@ repos: # General checkers - repo: https://github.com/pre-commit/pygrep-hooks - rev: v1.9.0 + rev: v1.10.0 hooks: - id: text-unicode-replacement-char name: Check for Unicode replacement chars - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.3.0 + rev: v4.5.0 hooks: - id: check-added-large-files name: Check for added large files @@ -214,14 +227,14 @@ repos: # Check that commit message follows basic rules - repo: https://github.com/jorisroovers/gitlint - rev: v0.17.0 + rev: v0.19.1 hooks: - id: gitlint name: Check commit message # Check commit message spelling - repo: https://github.com/codespell-project/codespell - rev: v2.1.0 + rev: v2.2.6 hooks: - id: codespell name: Check commit message spelling diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 00000000..3a613f33 --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,18 @@ +# Configuration file for Prettier + +printWidth: 80 +tabWidth: 2 +useTabs: false +semi: true +singleQuote: false +trailingComma: 'es5' +bracketSpacing: false +arrowParens: 'always' +proseWrap: 'preserve' +endOfLine: 'lf' +singleAttributePerLine: false + +overrides: +- files: '*.css' + options: + printWidth: 120 diff --git a/.stylelintrc.json b/.stylelintrc.json index f3138a86..b50fdcc6 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -10,31 +10,25 @@ "stylelint-order" ], "rules": { - "at-rule-semicolon-space-before": "never", - "block-closing-brace-space-after": "always-single-line", - "block-opening-brace-newline-after": "always", - "block-closing-brace-newline-before": "always", "color-named": "never", - "declaration-block-semicolon-newline-before": "never-multi-line", + "declaration-property-value-no-unknown": true, "font-weight-notation": "named-where-possible", - "function-comma-newline-before": "never-multi-line", "function-url-no-scheme-relative": true, - "linebreaks": "unix", - "max-empty-lines": 2, - "media-query-list-comma-newline-before": "never-multi-line", + "media-feature-name-value-no-unknown": true, + "media-feature-range-notation": "prefix", "no-descending-specificity": null, "no-unknown-animations": true, + "no-unknown-custom-properties": true, "number-max-precision": 5, "property-no-unknown": [true, {"checkPrefixed": true}], - "rule-empty-line-before": "always", - "selector-list-comma-newline-before": "never-multi-line", - "selector-list-comma-space-after": "always-single-line", "time-min-milliseconds": 100, - "unicode-bom": "never", - "value-list-comma-newline-before": "never-multi-line", "csstree/validator": true, "order/properties-alphabetical-order": true, "plugin/declaration-block-no-ignored-properties": true, - "plugin/no-unsupported-browser-features": true + "plugin/no-unsupported-browser-features": [true, { + "ignore": [ + "css-overflow" + ] + }] } } diff --git a/.yamllint.yml b/.yamllint.yml index ec613630..041dd766 100644 --- a/.yamllint.yml +++ b/.yamllint.yml @@ -5,6 +5,10 @@ extends: default locale: en_US.UTF-8 rules: + anchors: + forbid-undeclared-aliases: true + forbid-duplicated-anchors: true + forbid-unused-anchors: true braces: min-spaces-inside-empty: 0 max-spaces-inside-empty: 0 @@ -28,3 +32,4 @@ rules: quoted-strings: quote-type: single required: false + allow-quoted-quotes: true diff --git a/AUTHORS.txt b/AUTHORS.txt index 1c5f8c95..32c923e7 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,10 +1,9 @@ The Spyder Website Contributors are composed of: -* Rafael Laverde (Initial creator). -* Daniel Althviz (Overhaul for Lektor-Icon v0). -* C.A.M. Gerlach (Overhaul for Lektor-Icon v2). -* Juanita Gomez (Blog writer). -* All other developers who have contributed to this repository . +* Rafael Laverde (Initial creator) +* Daniel Althviz (Overhaul for Lektor-Icon v0) +* C.A.M. Gerlach (Maintainer; overhaul for Lektor-Icon v2) +* All other developers who have contributed to the website-spyder repository Additionally, the site's theme was: * Originally designed by Free HTML5 Template , diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f41ca769..f4530f1d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing Guide -This is the website for the Spyder scientific Python development environment, and is developed with standard Github flow. +This is the website for the Spyder scientific Python development environment, and is developed with standard GitHub flow. If you're not comfortable with at least the basics of ``git`` and GitHub, we recommend seeking out a beginner tutorial; if you are already are experienced with it, most of this guide will already be familiar to you. However, the guide should fill you in on pretty much all the parts you need to know, so read on. Thanks! @@ -99,13 +99,13 @@ To get the consistent pinned versions of the development dependencies, install t If using conda, run: ```bash -conda install -c conda-forge --file requirements-dev.txt +conda install -c conda-forge --file requirements.txt ``` Or, using pip, ```bash -python -m pip -r requirements-dev.txt +python -m pip install -r requirements.txt ``` diff --git a/NOTICE.txt b/NOTICE.txt index 8c635422..ebdb3955 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -12,11 +12,11 @@ These files are listed here with their corresponding authors, permission notices See the NOTICE.txt in themes/lektor-icon/NOTICE.txt or the Lektor-Icon repository for a full list of those in the theme. https://github.com/spyder-ide/lektor-icon/blob/master/NOTICE.txt -Any file not listed here or there is covered by Spyder's MIT (Expat) license, described in the LICENSE.txt file in this repository and Spyder's __init__.py. +Any file not listed in either NOTICE.txt is covered by Spyder's MIT (Expat) license, described in the LICENSE.txt file in this repository. Images, icons and font glyphs that include trademarked elements are used for informational purposes only, and do not necessarily constitute any endorsement, association or ownership by or of the marks or their respective owners. -All trademarks are the property of their respective owners. +All trademarks are and remain the property of their respective owners. Reference the Spyder NOTICE.txt for how to add items to this file. https://github.com/spyder-ide/spyder/blob/master/NOTICE.txt diff --git a/README.md b/README.md index 95393174..aa3a2f6f 100644 --- a/README.md +++ b/README.md @@ -10,12 +10,10 @@ [![Framework](https://img.shields.io/badge/Framework-Lektor-purple.svg)](https://www.getlektor.com/) [![Theme](https://img.shields.io/badge/Theme-Lektor--Icon-red.svg)](https://spyder-ide.github.io/lektor-icon/) [![OpenCollective Backers](https://opencollective.com/spyder/backers/badge.svg?color=blue)](https://opencollective.com/spyder) -[![Gitter chat](https://badges.gitter.im/spyder-ide/spyder.svg)](https://gitter.im/spyder-ide/public) -[![Deploy status](https://github.com/spyder-ide/website-spyder/actions/workflows/deploy.yaml/badge.svg?branch=master)](https://github.com/spyder-ide/website-spyder/actions/workflows/deploy.yaml) -[![Test status](https://github.com/spyder-ide/website-spyder/actions/workflows/test.yaml/badge.svg)](https://github.com/spyder-ide/website-spyder/actions/workflows/test.yaml) +[![Build status](https://github.com/spyder-ide/website-spyder/actions/workflows/build.yaml/badge.svg?branch=master)](https://github.com/spyder-ide/website-spyder/actions/workflows/build.yaml) [![Lint status](https://github.com/spyder-ide/website-spyder/actions/workflows/lint.yaml/badge.svg?branch=master)](https://github.com/spyder-ide/website-spyder/actions/workflows/lint.yaml) [![Pre-Commit](https://img.shields.io/badge/Linting-Pre--Commit-brightgreen?logo=pre-commit&logoColor=white)](https://pre-commit.com/) [![Netlify Status](https://api.netlify.com/api/v1/badges/12791f68-4cbb-4236-b918-24da97168631/deploy-status)](https://app.netlify.com/sites/spyder-website-preview/deploys) @@ -76,18 +74,14 @@ The build also requires several [Lektor plugins](https://www.getlektor.com/docs/ [Main Website](https://www.spyder-ide.org/) -[Download Spyder (with Anaconda)](https://www.anaconda.com/download/) - [Online Documentation](https://docs.spyder-ide.org/) -[Spyder Github](https://github.com/spyder-ide/spyder) +[Spyder GitHub](https://github.com/spyder-ide/spyder) [Troubleshooting Guide and FAQ](https://github.com/spyder-ide/spyder/wiki/Troubleshooting-Guide-and-FAQ) [Development Wiki](https://github.com/spyder-ide/spyder/wiki/Dev:-Index) -[Gitter Chatroom](https://gitter.im/spyder-ide/public) - [Google Group](https://groups.google.com/group/spyderlib) [@Spyder_IDE on Twitter](https://twitter.com/spyder_ide) diff --git a/SECURITY.md b/SECURITY.md index aad1566c..039935b6 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,10 +2,10 @@ ## Reporting a Vulnerability -If you believe you've discovered a security vulnerability in this website or its dependencies, please contact the website maintainer at CAM.Gerlach@Gerlach.CAM or the Spyder team at spyder.python@gmail.com. +If you believe you've discovered a security vulnerability in this website or its dependencies, please contact the website maintainer at or the Spyder team at . Please be sure to carefully document the vulnerability, including a summary, describing the impacts, identifying the line(s) of code affected, stating the conditions under which it is exploitable and including a minimal reproducible test case. Further information and advice or patches on how to mitigate it is always welcome. -You can usually expect to hear back within 48 hours, at which point we'll inform you of our evaluation of the vulnerability and what steps we plan to take, and will reach out if we need further clarification from you. +You can usually expect to hear back within one week, at which point we'll inform you of our evaluation of the vulnerability and what steps we plan to take, and will reach out if we need further clarification from you. Once its patched, we'll send a followup email letting you know, and are happy to update you on its status should you further inquire. While this is a volunteer project and we don't have financial compensation to offer, we can certainly publicly thank you for your help if you would like, on the project and on the site. Thanks! diff --git a/assets/static/css/custom_styles.css b/assets/static/css/custom_styles.css index dc3b332f..eb8a5344 100644 --- a/assets/static/css/custom_styles.css +++ b/assets/static/css/custom_styles.css @@ -18,13 +18,11 @@ font-size: 1.15em; } - /*** Card layout and title adjustments ***/ /* Remove margin between cards when single-column */ @media screen and (max-width: 768px) { - .col-md-4 .card-item { margin: 0; } @@ -47,7 +45,6 @@ } @media screen and (max-width: 768px) { - #section-components .icon .img-responsive { width: 30%; } @@ -68,7 +65,6 @@ background: var(--theme-bg-color, #fff); } - /*** Sponsors section ***/ /* Center text in sponsors section */ @@ -91,21 +87,18 @@ /* Increase size of graphics in sponsors section */ @media screen and (max-width: 1200px) { - #section-sponsors .col-md-4 { max-width: 320px; } } @media screen and (max-width: 768px) { - #section-sponsors .col-md-4 { max-width: 400px; } } @media screen and (max-width: 480px) { - #section-sponsors .col-md-4 { max-width: 320px; } @@ -127,7 +120,6 @@ min-width: 50%; } - /*** Modify download section to allow for multiple buttons ***/ #section-download-buttons { @@ -141,7 +133,6 @@ } @media screen and (max-width: 480px) { - #section-download-buttons .content-button { min-width: inherit; } diff --git a/assets/static/js/custom_scripts.js b/assets/static/js/custom_scripts.js index b8b144e1..5b454ae9 100644 --- a/assets/static/js/custom_scripts.js +++ b/assets/static/js/custom_scripts.js @@ -1,78 +1,84 @@ // Custom scripts for the Spyder website -;(function () { - 'use strict' +(function () { + "use strict"; /* Top-level variables */ var buttonData = { win: { - text: 'Download for Windows', - icon: ['fab', 'fa-windows'], - url: 'https://github.com/spyder-ide/spyder/releases/latest/download/Spyder_64bit_full.exe' + text: "Download for Windows", + icon: ["fab", "fa-windows"], + url: "https://github.com/spyder-ide/spyder/releases/latest/download/Spyder_64bit_full.exe", }, mac: { - text: 'Download for macOS', - icon: ['fab', 'fa-apple'], - url: 'https://github.com/spyder-ide/spyder/releases/latest/download/Spyder.dmg' + text: "Download for macOS", + icon: ["fab", "fa-apple"], + url: "https://github.com/spyder-ide/spyder/releases/latest/download/Spyder.dmg", }, linux: { - text: 'Download for Linux (Anaconda)', - icon: ['fab', 'fa-linux'], - url: 'https://www.anaconda.com/download/' + text: "Download for Linux (Anaconda)", + icon: ["fab", "fa-linux"], + url: "https://www.anaconda.com/download/", }, other: { - text: 'Download Spyder', - icon: ['fas', 'fa-download'], - url: 'https://github.com/spyder-ide/spyder/releases/latest' - } - } + text: "Download Spyder", + icon: ["fas", "fa-download"], + url: "https://github.com/spyder-ide/spyder/releases/latest", + }, + }; /* Helper functions */ // Get the key corresponding to the current desktop operating system - function getOSName () { - var platform = navigator.platform + function getOSName() { + var platform = navigator.platform; if (!platform) { - return 'other' - }; - if (platform.indexOf('Win') === 0) { - return 'win' - }; - if (platform.indexOf('Mac') === 0) { - return 'mac' - }; - if ((platform.indexOf('Linux') === 0 || platform.indexOf('X11') === 0) && - !platform.match(/android/i) && !navigator.userAgent.match(/android/i)) { - return 'linux' - }; - return 'other' - }; + return "other"; + } + if (platform.indexOf("Win") === 0) { + return "win"; + } + if (platform.indexOf("Mac") === 0) { + return "mac"; + } + if ( + (platform.indexOf("Linux") === 0 || platform.indexOf("X11") === 0) && + !platform.match(/android/i) && + !navigator.userAgent.match(/android/i) + ) { + return "linux"; + } + return "other"; + } // Get the button data corresponding to the current OS - function getButtonData () { - var osName = getOSName() - return buttonData[osName] - }; + function getButtonData() { + var osName = getOSName(); + return buttonData[osName]; + } /* Main functions */ // Setup download button based on current OS - function setupDownloadButton (downloadButton) { - var buttonData = getButtonData() - downloadButton.href = buttonData.url - downloadButton.getElementsByClassName('download-text')[0].textContent = buttonData.text + function setupDownloadButton(downloadButton) { + var buttonData = getButtonData(); + downloadButton.href = buttonData.url; + downloadButton.getElementsByClassName("download-text")[0].textContent = + buttonData.text; for (var i = 0; i < buttonData.icon.length; i++) { - downloadButton.getElementsByClassName('download-os-icon')[0].classList.add(buttonData.icon[i]) - }; - }; + downloadButton + .getElementsByClassName("download-os-icon")[0] + .classList.add(buttonData.icon[i]); + } + } /* Fire events */ // On initial DOM ready, set up the tour and the version dropdown - document.addEventListener('DOMContentLoaded', function () { - var downloadButton = document.getElementById('download-button-button') + document.addEventListener("DOMContentLoaded", function () { + var downloadButton = document.getElementById("download-button-button"); if (downloadButton) { - setupDownloadButton(downloadButton) - }; - }) -}()) + setupDownloadButton(downloadButton); + } + }); +})(); diff --git a/ci/install.sh b/ci/install.sh index 79376de4..67c1dbcb 100755 --- a/ci/install.sh +++ b/ci/install.sh @@ -1,4 +1,4 @@ #!/bin/bash -ex python3 -m pip install --upgrade pip setuptools wheel -python3 -m pip install --upgrade -r requirements-prod.txt +python3 -m pip install --upgrade -r requirements.txt diff --git a/content/blog/installer-improvements/contents.lr b/content/blog/installer-improvements/contents.lr index 6d1c925f..480e575c 100644 --- a/content/blog/installer-improvements/contents.lr +++ b/content/blog/installer-improvements/contents.lr @@ -46,7 +46,7 @@ After the download completes, Spyder will ask if you want to update immediately, If you chose to update immediately, or once you close Spyder if you deferred the update, our installer will be started automatically. On Windows, the installer has a series of automated prompts to close the current instance, uninstall the previous version and finally install the new one: -![Series of screenshots of intallation steps, with arrows between: Yes/no dialog to close spyder, confirm close dialog, uninstall old version dialog, uninstalling status and finally installation wizard](installation-flow.png) +![Series of screenshots of installation steps, with arrows between: Yes/no dialog to close spyder, confirm close dialog, uninstall old version dialog, uninstalling status and finally installation wizard](installation-flow.png) On macOS, Spyder will automatically mount the new version's DMG, so you can simply drag and drop it in the Applications folder diff --git a/netlify.toml b/netlify.toml index 349c0b70..aa8d6a57 100644 --- a/netlify.toml +++ b/netlify.toml @@ -5,11 +5,11 @@ # This is where we will look for package.json/.nvmrc/etc. # base = "project/" - # Default build command. - command = "ci/install.sh && ci/build.sh" - # Directory that contains the deploy-ready HTML files and assets generated by # the build. This is relative to the base directory if one has been set, or the # root directory if a base has not been set. This sample publishes the # directory located at the absolute path "root/project/build-output" publish = "website-lektor-icon-build/" + + # Default build command. + command = "ci/install.sh && ci/build.sh" diff --git a/requirements-dev.txt b/requirements-dev.txt deleted file mode 100644 index e968d136..00000000 --- a/requirements-dev.txt +++ /dev/null @@ -1,4 +0,0 @@ -Lektor>=3.2.3,<4.0 # Primary dependency -lektor-atom==0.4.0 # RSS feeds -lektor-disqus-comments==0.4.1 # Blog comments -pre-commit>=2.10.0,<3.0 # For pre-commit hooks diff --git a/requirements-prod.txt b/requirements-prod.txt deleted file mode 100644 index 3dae22ad..00000000 --- a/requirements-prod.txt +++ /dev/null @@ -1,3 +0,0 @@ -Lektor>=3.2.3,<4.0 # Primary dependency -lektor-atom==0.4.0 # RSS feeds -lektor-disqus-comments==0.4.1 # Blog comments diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..fadd9c15 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +Lektor>=3.3,<3.4 # Primary dependency +lektor-atom==0.4.0 # RSS feeds +lektor-disqus-comments==0.4.1 # Blog comments +pre-commit>=2.10.0,<4.0 # For pre-commit hooks diff --git a/runtime.txt b/runtime.txt deleted file mode 100644 index cc1923a4..00000000 --- a/runtime.txt +++ /dev/null @@ -1 +0,0 @@ -3.8 diff --git a/themes/lektor-icon b/themes/lektor-icon index cff854a4..252f7ef6 160000 --- a/themes/lektor-icon +++ b/themes/lektor-icon @@ -1 +1 @@ -Subproject commit cff854a4c4afc6b6faab9e63d8c66f06f65b813e +Subproject commit 252f7ef6891a78cc1f5c94c76cd4da254a49099c