* Using JSON endpoint instead of ASCII endpoint for mirror listing, as the JSON endpoint is cached and easier to parse
* Added a TODO to handle unknown regional mirrors (which lacks info in the backend)
* Filtered out 'bad' mirrors. Also added a sorting mechanism that uses the mirrors 'score' rather than just the URL name. This will emulate the reflector.service/rankmirrors behavior and thus reducing the need to re-rank the mirrors.
* Added the ability to sort mirrors via latency or download speed using sorted(mirror_list, key=lambda mirror: (mirror.score, mirror.speed)) - but I have not implemented the sorting via the menu yet, and I have not integrated the new MirrorStatus model into the handling of URL's. I still need to figure out where the {region: [url, url]} is being used, so that i can convert to {region: [mirror.url, mirror.url]} logic.
* Converting MirrorStatus model to {mirror: [url, url]}
* Added debug information for /var/log/archinstall/install.log
* Fixing flake8
* Fixed issue where 'dead' mirrors have no score, and thus can't be round():ed
* Forgot to return model validation data after validation
* Improving debug/info output
* Reverting change in #2350 - Writing over instead of appending to mirrorlist
* Mirror URL's reported by the JSON endpoint does not contain the repo format, only the base location for the mirror. So we have to adjust for this.
* pydantic did not honor 'private' variables in 'before' model validator, had to change to 'after' instead.
* Sorted out mypy typing matching the new MirrorStatus model
* Added pydantic as a dependency, it's time!
* Updated workflow to include pydantic
* Added return values from model @property decorators.
* Fixing issue of: _Warning: Package 'archinstall.default_profiles' is absent from the 'packages' configuration. x50+
* Corrected the package name from 'where' to 'archinstall'
* Undoing change to 'package-data'
we were missing 2 dependencies, pyparted and systemd-python(optional), that would lead pip installations to fail sometimes.
I added them and attributed systemd_python to a new optional dependency group called log since it only seems to be used for system logging:
64c91cdbcb/archinstall/lib/output.py (L133)
* Adding permanent redirect for readthedocs
* Have to remove pyparted because readthedocs can't build it
* Removed pyparted from pyproject.toml as readthedocs read that one too afterall.
* Adding python-simple-term-menu to the dependency list
* Added dependencies to all binaries we call, such as 'ps' and 'mkfs' etc
* Sorted the depends list - just for peace of mind
* Bumped version in prep for release of rc1, also updated README a bit
* Removed older python versions from classifiers
* Removing legacy build and dist files
* Bumped requirement for setuptools to deal with dynamic license inclusion
* Added dynamic versioning and licensing to pyproject.toml
* Clarified the license according to the LICENSE file, GPL-3.0-only
* Leverage same build system used by PyPi in the ArchInstall ISO
* 3.6.0 is not in the archinstall repos yet. Use 3.5.1 so ISOs don't need networking to build.
* Convert workflow from flit to twine for publishing
* This could be split into two different tasks
* Change build-system toml block to setuptools
* Switch to standardized project block
* Some corrections
* Add build module
* Remove symlinks
* Move example and profiles folders to archinstall
* Create symlinks outside of the archinstall folder
* Add new workflow to build archinstall but not publish for regular commits
* Add build artifacts
* Rename, so it's just archinstall.zip
* Replace symlinks with copies
* Also replace symlinks with copies in python-build.yml
* Revert "Create symlinks outside of the archinstall folder"
This reverts commit d76cf18eaa.
* Revert "Move example and profiles folders to archinstall"
This reverts commit c41c1c9102.
* Revert "Remove symlinks"
This reverts commit fd959e3230.
* Switch up how I'm replacing symlinks with copies
* Explore using flit as the build backend still
* Drop tools.flit.metadata block
* tool.flit.scripts is incompatible with project block
* Remove symlink copy workaround
* This seems to cause an error, until I figure it out, license is specified in classifiers.
* Make authors a list of dicts
* URL correction
* Use more of the new style metadata for flit
* This is redundant; build downloads these in a venv
* project.scripts replaces tool.flit.scripts
* whitespace
* Try explicitly adding symlinks as includes
* Minor whitespacce tweaks
* Add newer build packages to ISO
* Update comment on python-build.yml
* Added type annotations for 1/5 of the files.
There's bound to be some issues with type miss-match, will sort that out later.
* Added type hints for 4/5 of the code
* Added type hints for 4.7/5 of the code
* Added type hints for 5/5 of the code base
* Split the linters into individual files
This should help with more clearly show which runner is breaking since they don't share a single common name any longer. Also moved mypy settings into pyproject.toml
* Fixed some of the last flake8 issues
* Missing parameter
* Fixed invalid lookahead types
* __future__ had to be at the top
* Fixed last flake8 issues