Skip to content

Latest commit

 

History

History
678 lines (461 loc) · 21.6 KB

CHANGELOG.rst

File metadata and controls

678 lines (461 loc) · 21.6 KB

Change log

Next version

  • Updated hooks. Added the djade Django template formatter.

1.0.20240904

  • Added support for rspack.config.js out of the box.
  • Added rspack.library.js to the list of automatically installed files when running the hook task.

1.0.20240706

  • Added support for pointing users to the Traduire instance when running the mm task.
  • Updated hooks.

1.0.20240527

  • Switched to uv. Install it using pipx install uv if you haven't done so already.

1.0.20240517.1

  • Improved the *.pyc deletion stage by skipping potentially big folders which should never contain those files.
  • Skipped freezing more Python packaging libraries.

1.0.20240516.1

  • Added the missing biome configuration.

1.0.20240516

  • Prepared the webpack library for configuration schema changes in webpack-dev-server 5.
  • Avoid the very annoying creation of dotfiles over and over.

1.0.20240116

  • Added Python 3.12 detection when rebuilding the local virtualenv.
  • Changed the webpack dev server configuration to disable the compilation warnings overlay by default. Re-enabled SASS warnings from dependencies now that warnings are less annoying.
  • Moved pull-db, pull-media, fetch and deploy into the NINE group because they are really dependent upon our common setup there and do not work with cloud native apps.

1.0.20231030

  • Improved the error message when unable to fetch a remote .env file.
  • Added a resolvePreactAsReact utility to the Webpack library.
  • Replaced black with ruff format.
  • Changed the requirements-to-freeze.txt sorting to be case insensitive.

1.0.20230919

  • Removed the Pylint refactoring warnings from the default ruff ruleset.
  • Activated more ruff rules, removed the PyLint refactoring warnings, updated pre-commit hooks.

1.0.20230712

  • Updated the bundled pre-commit hooks, removed flake8-logging-format from the default configuration.

1.0.20230705

  • Removed the unused config.app.
  • Exposed all configuration values as FL_* environment values, for example FL_DOMAIN.

1.0.20230630

  • Fixed the find command which deletes old static files.
  • Updated the example Webpack configuration to work with the newest version of postcss-custom-media.

1.0.20230622

  • Changed the JavaScript string extractor to strip trailing commas from argument lists.
  • Switched to not deleting everything under static/ when deploying, only delete old files.

1.0.20230531

  • Updated the pre-commit hooks. Started ignoring the invalid module names generated by Django's database migration framework.
  • Changed nine-reinit-from to create more hardlinks when syncing media files.
  • Switched to hatchling.
  • Switched the default tooling from flake8, isort etc. to ruff. Added a standard pyproject.toml file.
  • Fixed the differentiation between local and remote command execution with or without a replaced environment and with or without a PTY.
  • Updated the pre-commit hooks.
  • Quieted deprecation warnings in SASS dependencies by default. We know that divison will be going away in Dart Sass 2.0.
  • Converted the update task to run things concurrently.
  • Replaced the include_www=False default argument to nine-alias-add and nine-alias-remove with a mandatory boolean argument.
  • Added messages about updating the hostings overview.
  • Guarded against including the environment name in the aliases list.
  • Customized the syslog identifier when adding systemd services.
  • Pinned fabric to <2.7 for now.
  • Stopped recommending importFrom when using postcss-custom-media.
  • Fixed fl github to actually set origin (again).
  • Added a --keep flag to fl upgrade if the virtualenv shouldn't be recreated unconditionally.
  • Changed the Nine systemd user service to not use a template anymore. This allows customizing the service per vhost.
  • Changed the code to automatically determine the base.
  • Changed fl.require to not only update its own version but also all dotfiles.
  • Added Python 3.11 to the list of known interpreters.
  • Removed the fl bitbucket task.
  • Started using the style-loader again in development since it properly supports source maps.
  • Changed the asset rule to also handle MP3 and WAV files; made the regex case insensitive.
  • Added a --recreate option to the fl nine-db-dotenv task.
  • Added a noSplitting export to the Webpack library to easily disable the chunk splitting optimization. It may not be an optimization for projects using very little JavaScript.
  • Stopped using pyinvoke's echo setting and opted to echo commands ourselves instead.
  • Added extra arguments to fl pull-db which are passed to the remote pg_dump command.
  • Added flake8-bugbear.
  • Changed the output.assetModuleFilename configuration to do the right thing when encountering files outside Django's staticfiles.
  • Updated the pre-commit hooks.
  • Updated the password set by fl reset-pw with more iterations so that repeated fl pull-db invocations do not cause sign-outs when using Django 4.0.
  • Tweaked the bumpversion.sh script to allow overriding the version from the commandline.
  • Updated the pre-commit hooks installed by fl hook to enforce absolute imports and target a minimum of Django 4.0.
  • Added a htmlPlugin utility to the Webpack library for scenarios where more control is required over the html-webpack-plugin configuration.
  • Made the forwarding proxy optional in the devServer Webpack library utility.
  • Augmented fl nine-reinit-from to also support hosts with nine-manage-databases.
  • Added a babelRule utility to the Webpack library.
  • Added a _old_dev utility so that going back to the old way of running the webpack development server is easier.
  • Switched to a declarative setup.
  • Avoided installing fabric 2.7.0 since some combinations of fabric and paramiko etc. seem to be buggy.
  • Made dev use the new method of using the Webpack dev server as a proxy for the Django backend instead of having to listen on two ports and comunicating IP addresses. The new method transparently works when connecting to the development server from a different IP.
  • Updated the pre-commit configuration.
  • Updated the ESLint configuration to assume an automatic JSX runtime.
  • Removed outdated configuration file examples.
  • Added a Webpack library to the files installed by fl hook.
  • Started syncing the repository URL on servers when deploying.
  • Removed the hook to sort .gitignore, it made trouble with empty files.
  • Added updating of submodules to the deployment task.
  • Updated the pre-commit configuration.
  • Added yet another missing babel plugin.
  • Reversed the default order of ESLint and prettier. ESLint doesn't complain about missing prettier formatting, and prettier can cleanup the results of eslint --fix.
  • Added a reset-sq task for resetting all PostgreSQL sequences in a database.
  • Added python3.10 and removed python3.7 and python3.6 from the list of Python 3 exexecutables used when initializing projects locally.
  • Started initializing submodules in the update task. Using submodules for libraries is still discouraged. We use them so rarely that people forget how to do this.
  • Added verbose: true to the ESLint hook configuration so that ESLint warnings are shown even if ESLint doesn't find any errors.
  • Added a missing babel dependency.
  • Added a hook to sort .gitignore.
  • Made ESLint automatically apply some fixes.
  • Dropped a few legacy check methods; reimplement them in your own fabfile if you still need them (or better yet, move to pre-commit).
  • Dropped the fmt task and all utilities. Use pre-commit instead.
  • Updated our own pre-commit hooks.
  • Changed pull-db to create a local .env if it does not exist already.
  • Restored the automatic installation of the pre-commit hook.
  • Extended hook with a --force argument to allow overwriting pre-existing files in the project.
  • Added .editorconfig and .eslintrc.js defaults to hook. Updated the pre-commit configuration.
  • Better defaults in the .env: Add .localhost to the local ALLOWED_HOSTS setting.
  • Generate the standard SECURE_SSL_* settings instead of CANONICAL_DOMAIN*.
  • Changed force pushes to use --force-with-lease.
  • Changed systemctl invocations to use the --now switch to immediately enable or disable services.
  • Added a --python3 argument to nine-venv which allows overriding the Python executable.
  • Stop wrapping long lines in pofiles.
  • Changed fl mm to disable ESLint on the generated strings.js file.
  • Added *jsx files to the gettext extractor.
  • Tweaked the pre-commit configuration.
  • Changed fl check to build on pre-commit instead.
  • Added a configuration flag to always use force pushes for select environments.
  • Added auto-updating of fl.require statements in projects.
  • Added pyupgrade invocations to fl fmt.
  • Changed all _fmt_* utilities to not stop on errors.
  • Fixed the djlint invocation to actually reformat files.
  • Added .feinheit.dev to the list of ALLOWED_HOSTS in nine-db-dotenv.
  • Added build to the list of ignores.
  • Added djlint invocations to fl fmt.
  • Added a --clobber argument to fl local.
  • Fixed the final newline behavior of fl mm's string extraction.
  • Changed the pkg-resources-exclusion in fl freeze to also match pkg_resources.
  • Added a --language flag to fl mm which is especially useful when adding a new language.
  • Integrated the gettext string extraction script into fl mm.
  • Switch from npx to yarn run.
  • Changed the update task to not fail when running migrations fails. This allows fl update pull-db to continue.
  • Added dist to the list of folders to skip when running makemessages.
  • Added --force to fl deploy to make git push use a force-push. This is especially useful to deploy e.g. staging branches which are rewound often.
  • Added a SENTRY_ENVIRONMENT= entry to generated .env files.
  • Added a pull_media task.
  • Dropped --spec arguments from pipx run invocations. The temporary virtual environments will be cached for a maximum of 14 days anyway, so they should always be recent enough.
  • Added an info message when the fh-fablib version is newer than the required version (so that projects' fabfiles are updated more often).
  • Changed _deploy_django (and therefore the default deployment) to use hard resets to update the code on the server instead of ff-only merges, but add an additional check for uncommitted changes right before resetting as a safety measure.
  • Added config.environment holding the name of the active environment or "default".
  • Restructured fl deploy into more building blocks so that overriding aspects of the deployment is less work.
  • Added fl nine-reinit-from.
  • Changed the configuration method for multiple environments.
  • Fixed the large files check to skip removed files.
  • Changed the large files check to report file sizes in kilobytes.
  • Added a check for large files to fl check.
  • Added fl hook to replace the git pre-commit hook.
  • Corrected and updated the examples in the README.
  • Changed fl github to terminate with a better error message when the origin remote is already setup.
  • Fixed nine-disable to backup and drop the database for real.
  • Promoted _reset_passwords to reset-pw.
  • Removed the explicit activation of pip's 2020 resolver from pip invocations, it is the default now.
  • Added nine-restart to restart the application server.
  • Started executing nodejs binaries using npx.
  • Avoided pip 20.3.2 because it downloads too many packages.
  • Added a --fast switch to deploy which skips Webpack.
  • Allowed setting the environments config key to produce nicer error messages when forgetting to set an environment with which to interact.
  • Started using pip's 2020 resolver when upgrading the virtualenv.
  • Started terminating deploys when there are uncommitted changes on the server.
  • Started sourcing .profile again when running psql admin commands on the server.
  • Fixed many problems with obviously untested nine-* tasks.
  • Added github to create a repo on GitHub using the GitHub CLI <https://cli.github.com/>__ and immediately push the code there.
  • Fixed uses of input() which somehow didn't work like they were supposed to at all.
  • Renamed the entrypoint from fab to fl.
  • Switched from running pip directly to the recommended python -m pip everywhere.
  • Avoided starting too many processes by executing binaries in node_modules/.bin directly instead of going through yarn run.
  • Made nine-venv recreate the virtualenv from scratch.
  • Made local recreate node_modules and the virtualenv from scratch.
  • Fixed nine-alias-remove to actually remove the second subdomain.
  • Added a --include-www option to nine-alias-add and nine-alias-remove. The www. subdomain isn't added or removed by default anymore.
  • Removed the redundant --trailing-comma es5 argument to prettier, it is the default.
  • Splitted _fmt_pipx_cmds into _fmt_isort and _fmt_black.
  • Reordered fmt to run Python tasks first, as check does.
  • Extracted the branch check into its own _check_branch function.
  • Changed nine-venv to prefer pyenv shims instead of the potentially outdated system-provided python3 binary.
  • Added our own entry_points so that the --include-deps argument to pipx isn't necessary anymore.
  • Removed an unnecessary # noqa.
  • Stopped running flake8 when formatting code.
  • Added the --stable switch to upgrade to only install stable Python packages, no alpha, beta or rc versions.
  • Disabled shortflags to dev.
  • Changed the default fmt implementation to run isort, black and flake8 via pipx. It is recommended you remove isort configuration from your project.
  • Added default options when running prettier so that prettier configuration may be dropped from package.json (ES5 commas, no semicolons where not necessary).
  • Changed check to run flake8 using pipx too.
  • Inlined the dev and prod npm scripts.
  • Added a multi-env example to the README.
  • Switched to running all commands with echo and pty and without replace_env.
  • Activated rsync stats instead of succeeding silently or filling the screen several times with spam when deploying.
  • Changed nine-db-dotenv to terminate when .env already exists on the server.
  • Completely changed the structure of this library. Rebuilt the library on top of Fabric>2. Dropped old stuff and renamed everything.
  • Switched to a date-based versioning scheme, which does NOT follow semver.