* 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.
* Moved to arch container
* Swapped branch for testing
* Removed publish if condition for now
* I think I got it this time, publish_branch has to be separate in order for the runner to create it and have access to pushing things?
* Missing 'git' depndency, to work with git heh
* Testing github pages
* Adding libparted-dev to the ubuntu machine (I'd like to move away from ubuntu, but the runner recommended it)
* Debugging
* changed to master branch
* Bump Python in workflow
* Attempting fix to build runner failing
* Appended --break-system-packages since the new changes was introduced in Arch
---------
Co-authored-by: Anton Hvornum <anton@hvornum.se>
* Exclude liveusb from disk selection
* Exclude arch iso from being an option
* Update
* Update
* Update
* Mypy
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
* 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
Since we can create them, but as draft or locally through tagging. It's best to safe bet this to only published releases. Worst case manual submission has to be done.