* 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
* Add simple menu for better UX
* Add remove external dependency
* Fix harddisk return value on skip
* Table output for partitioning process
* Switch partitioning to simple menu
* fixup! Switch partitioning to simple menu
* Ignoring complexity and binary operator issues
Only in simple_menu.py
* Added license text to the MIT licensed file
* Added in versioning information
* Fixed some imports and removed the last generic_select() from user_interaction. Also fixed a revert/merged fork of ask_for_main_filesystem_format()
* Update color scheme to match Arch style better
* Use cyan as default cursor color
* Leave simple menu the same
Co-authored-by: Daniel Girtler <girtler.daniel@gmail.com>
Co-authored-by: Anton Hvornum <anton.feeds+github@gmail.com>
Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com>
* added support for ingesting config
* fixed condition to check key in dictionary
* Removed redundant code, profile and desktop keys are now optional
* Added base-config.json and support for pulling credentials from .env
* added base config file and env file for users credentials
* added silent install switch
* added python-dotenv as a dependency
* Updated Readme to include argparse changes as well as config ingestion
* Updated Readme to include argparse changes as well as config ingestion
* fixed typo in pyproject.toml
* Replaced the magic __builtin__ global variable. This should fix mypy complaints while still retaining the same functionality, kinda. It's less automatic but it's also less of dark magic, which makes sense for anyone but me.
* Fixes string index error.
* Quotation error.
* fixed initializing --script argument
* added python-dotenv as a dependency
* Installation can't be silent if config is not passed
* fixed silent install help
* fixed condition for ask_user_questions
* reverted to creating profile object properly
* Cleaned up and incorporated suggestions
* added Profile import
* added condition if Profile is null
* fixed condition
* updated parsing vars from argparse
* removed loading users from .env
* Reworking SysCommand & Moving to localectl for locale related activities (#4)
* Moving to `localectl` rather than local file manipulation *(both for listing locales and setting them)*.
* Swapped `loadkeys` for localectl.
* Renamed `main` to `maim` in awesome profile.
* Created `archinstall.Boot(<installation>)` which spawns a `systemd-nspawn` container against the installation target.
* Exposing systemd.py's internals to archinstall global scope.
* Re-worked `SysCommand` completely, it's now a wrapper for `SysCommandWorker` which supports interacting with the process in a different way. `SysCommand` should behave just like the old one, for backwards compatibility reasons. This fixes#68 and #69.
* `SysCommand()` now has a `.decode()` function that defaults to `UTF-8`.
* Adding back peak_output=True to pacstrap.
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Dylan Taylor <dylan@dylanmtaylor.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
* fixed indent
* removed redundant import
* removed duplicate import
* removed duplicate import
Co-authored-by: Anton Hvornum <anton.feeds@gmail.com>
Co-authored-by: Anton Hvornum <anton@hvornum.se>
Co-authored-by: Dylan M. Taylor <dylan@dylanmtaylor.com>