-
Notifications
You must be signed in to change notification settings - Fork 113
complete overhaul and long term plan #708
Comments
A small note on
which might remove the need to use pacman's |
Sounds great indeed. There is a note in pacutils README, although I'm not sure what it specifically refers to:
|
Some update about the expected timeline: I am giving up on the idea of using a local repo (#643). Too many painful quirks, workarounds needed and uncertainty for a "nicer" design that mostly doesn't solve any issue relevant to the scenario pacaur is originally designed for. For anyone interested, it would probably make more sense to built a new interface upon aurutils instead. Note: Keep on eye on the Also, while I expected the Here's the new timeline: While auracle isn't ready yet, I'd like to start working on |
Recently, I've been working on continuous integration and code tests. I think that adding tests and CI to |
Definitely yes! A test suite is the one thing I regret not having written from day one, as I spent so much time checking weird regression. I am not very familiar with testing framework, but I know that Aurget uses cram which might be a candidate. Edit: See also Mocking Bash and Test Driven Development. I've however no experience with CI apart from using travis with C projects, which only detects when a compilation fails. |
We can write our own tests in bash without using external frameworks, but
Well, it is quite easy to create tests even for C, C++ or other compiled languages. In the
I've been working with GitLab CI in my team for building RPMs packages and C++ apps in CentOs 7. It works really well in combination with Docker. However, I am not sure how Travis CI would do with custom ArchLinux Docker images since it works by default in an Ubuntu environment. It seems that it is possible, but we could look for some free alternatives if that is not good enough. Edit: other nice option, Shippable. Some other CI services |
fwupd does CI with Travis using the ArchLinux Docker image The lines building the Docker and running things inside is here. |
There is very little code that wouldn't need to be rewritten to make full use of pacutils/makepkg utils functions or simply better practices (f.e., functions that return correct errors code). An overhaul would be better done from scratch, maybe even in a separate repo. This could be also be the opportunity to practice Test Driven Development: write the tests first, then the code. bats seems to be the ideal candidate. |
IMO a more effective approach would be to address upstream issues in the AUR as to trivialize writing clients. And when stuff like test frameworks is mentioned, filing fixes upstream is likely less effort to begin with... |
Generally agree with that, though I'm not sure which exact issues you're thinking about here.
|
We could use |
Yes. I did some minor work locally to "test the water", and it will be faster than changing some part then adjusting the relevant bits steps by steps in the rest of the code. The main files structure discussed in I don't think GH renames links of cross referenced issues. Using a new branch rather than a new repo might avoid a complete mess. |
Absolutely, I bet people will continue to fill bugs in this repository too. |
Looking back, the history of dependency resolution in pacaur is a true roller-coster, going from relying exclusively on the solver and PKGBUILD parser provided by cower to being entirely internally handled through the more modern AUR RPCv5 in pacaur code.
I've however recently learned that a better cower is in the pipeline - no ETA yet though. It will move to multiinfo, and should be able to handle the edge cases better (split packages, versioning issues). These were the reasons that made me move the solver to the bash side gradually, and what should have been a temporary solution simply became permanent (see #50, #149, #153, #235, and probably quite a few others).
Note: an early version of
auracle
is now available.Now, there is the opportunity to go back to the original vision as a simple glue code between tiny C utilities. Most of the complexity of the internal, duplicate code could be dropped, the maintenance burden of that code could be shared, and pacaur could focus exclusively on the "fast workflow" concept and the more useful tasks done by the more 'complete' helpers.
Using the new cower as full backend, here are some medium and long term plans:
4.8.x
4.9.x
5.x
pacman -Sp
calls by expac/pacsift (might requires some patchs, Breakage on skipping a package upgrade: "no results found for error)" #267 and particularly this comment)message.sh
,parseopts.sh
,util.sh
) (Argument parser doesn't stop at -- #764)PKGEXT
--pkg
upstream again (see improve mismatch install error situation #783) and get rid ofpacman -U
for install--debug
flaglocal repoThe one point I am not sure being worthwhile is using a local repo. While it will simplifly the split package and cache code, that code is working relatively well, and I am not sure about the work involved and pitfall, specially regarding the fast workflow concept (though AladW cleared the way with aurutils here, see relevant comment here).Edit: Dropping this idea, due to all the bugs and neccessary painful workarounds (see #643).
Some of the other ideas could be introduced gradually, or separately in the pacaur50 branch. Priority should be given to patching upstream tools. See also comments in #443.
The text was updated successfully, but these errors were encountered: