aero icon indicating copy to clipboard operation
aero copied to clipboard

replace aero.py with rusty build system

Open jwpjrdev opened this issue 3 years ago • 12 comments

this implementation will hopefully be faster and more maintainable

important things:

  • [ ] building aero
  • [ ] running qemu
  • [ ] updating ci commands
  • [ ] updating env commands (gitpod & codespaces)
  • [ ] optimisation
  • [ ] rust documentation
  • [ ] implementing latest features in aero_build from aero.py

note to self: don't forget to add a comment referencing this gist to the logging functions.

jwpjrdev avatar Sep 21 '22 06:09 jwpjrdev

i just want to point out that aero used to have a build system written in rust and it was replaced by the python script due to how long the initial build took, primarily because of the fact we download stuff from the internet and it used reqwest if i'm not mistaken, so please consider bringing in the least amount of crates possible :')

48cf avatar Sep 21 '22 12:09 48cf

that's the goal! aiming to use the smallest, fastest crates i can find

jwpjrdev avatar Sep 21 '22 14:09 jwpjrdev

won't be working on this until the 1st, ran out of hours on Gitpod 😢 i've written a good portion of it, just can't do anything with it yet

jwpjrdev avatar Sep 22 '22 17:09 jwpjrdev

by the way, currently, just using gumdrop and termcolor. if colour isn't needed, i'll ditch termcolor.

jwpjrdev avatar Sep 22 '22 17:09 jwpjrdev

gumdrop seems fine, you can get rid of termcolor as it seems to bring in a lot of winapi bullshit which is basically useless because aero doesn't have first class support for windows and it's a hefty crate (>1 MB), just implement ansi colors yourself with ansi escapes, it's very easy :')

48cf avatar Sep 22 '22 17:09 48cf

additionally the newer windows terminal support ansi escapes just fine so it shouldn't be a problem, i'm not sure if termcolor gates the winapi dependency behind a feature, but if it does then it might be wise to disable it

48cf avatar Sep 22 '22 17:09 48cf

cool, i'll look into that

jwpjrdev avatar Sep 22 '22 17:09 jwpjrdev

looks like it only uses it when the compile target is windows but it's still pretty hefty. https://github.com/BurntSushi/termcolor/blob/677f98b26a1b52f72303e1c9dfdc9ef68def8014/Cargo.toml#L21-L22

jwpjrdev avatar Sep 22 '22 18:09 jwpjrdev

accidentally started the workspace from master instead of rust-build and had to force push like a fool 🥲

jwpjrdev avatar Sep 28 '22 20:09 jwpjrdev

Just a comment, I think it's reasonable to say leaving out Windows/cygwin/etc compatibility for now should probably be fine, since anything WinApi is a massive pain and tends to add a lot of cruft/bloat. I'm going to take a look at what you have, and maybe throw some tests your way :)

ghost avatar Nov 22 '22 01:11 ghost

Just a comment, I think it's reasonable to say leaving out Windows/cygwin/etc compatibility for now should probably be fine, since anything WinApi is a massive pain and tends to add a lot of cruft/bloat. I'm going to take a look at what you have, and maybe throw some tests your way :)

I totally agree with that comment, the days of MSYS/Cygwin are numbered ever since WSL became a thing (and Windows 7 is EOL.) I don't think crippling our build system just to support exotic setups is a reasonable choice. Let's just keep it simple :^)

48cf avatar Nov 22 '22 03:11 48cf

i need to pull some upstream changes but i cba yet

jwpjrdev avatar Nov 27 '22 03:11 jwpjrdev

This has now been resolved as aero.py is replaced with make.

Andy-Python-Programmer avatar Jul 05 '24 06:07 Andy-Python-Programmer