Christoph Reiter
3c569263fd
Make ExtInfo.version optional instead of special casing an empty version
...
In case the version is an empty string it is considered newer by pacman
than for example "r123".
Instead make it optional and handle the None version everywhere.
Fixes #68
2024-03-26 13:41:57 +01:00
Christoph Reiter
1c1d538324
pkgextra: get rid of internal flag
2024-01-24 08:36:46 +01:00
Christoph Reiter
eab53769bd
Split up the code for the different external sources
2024-01-12 17:40:21 +01:00
Christoph Reiter
76d4b4d39b
Run pyupgrade
...
upgrade everything to 3.10+
2023-11-01 19:28:08 +01:00
Christoph Reiter
f2ed76293f
Rename pkgmeta to pkgextra
...
So things are consistent
2023-09-17 18:59:12 +02:00
Christoph Reiter
22c2b00ac2
Add a basic API for getting a list of package that need to be updated
2023-07-03 20:14:17 +02:00
Christoph Reiter
5ce37b851f
oops
2023-04-11 16:43:36 +02:00
Christoph Reiter
d8de6db6e6
Update Python dependencies
2023-04-09 17:23:44 +02:00
Christoph Reiter
3886b42af0
buildqueue: don't take dependencies of replacments
...
In case a package that is to be built is also replaced we would take
the dependencies of the replacement instead of the real one.
While this usually never happens, as the resulting package will be removed
on upgrades, it is wrong to do so. Don't resolve the package like
pacman would and just use them as is instead
2023-01-04 16:55:00 +01:00
Christoph Reiter
4d5cc2c498
Makedep on base too
...
Doesn't change anything since it's part of base-devel,
but why not.
2022-12-22 09:14:04 +01:00
Christoph Reiter
073e2db502
Make every package makedepend on base-devel
...
base-devel is the set of packages makepkg potentially needs,
so always depend on it so things get (1) installed and (2)
built first.
This potentially leads to more cycles, but we can try to clean
up base-devel a bit more.. or just deal with them manually when needed.
2022-12-22 09:10:50 +01:00
Christoph Reiter
76cd6ec28a
buildqueue: include the repo version
...
So we can show the version change in autobuild. Might be usefull
when deciding how to break dep cycles.
2022-04-01 14:30:41 +02:00
Christoph Reiter
b7fe1d8097
buildqueue: drop build sorting
...
This was initially used to decide the build order, which in turn
decided how dep cycles were broken up.
Cycles are not handled in autobuild, so the order no longer matters.
2022-04-01 14:15:11 +02:00
Christoph Reiter
c3ed2d7227
make sure packages don't depend on themselves
2022-02-23 10:10:32 +01:00
Christoph Reiter
3c41af895f
buildqueue: don't throw out dependencies when there is a cycle
...
ideally we want autobuild to deal with that, somehow..
2022-02-23 09:59:26 +01:00
Christoph Reiter
6e75bd1e28
buildqueue: only look at deps in the queue when breaking a cycle
...
This doesn't help with the c-ares, nghttp2 problem, but makes it easier
to debug
2022-02-23 09:57:23 +01:00
Christoph Reiter
5913b1f98b
Don't mark packages for removal if they still have rdeps
...
Not perfect, but a start
2022-01-06 16:10:23 +01:00
Christoph Reiter
0e655531d5
buildqueue: also handle packages replacing others
...
In case a package provides and replaces another one it has higher priority
than the provided package, if that exists.
2022-01-06 15:26:11 +01:00
Christoph Reiter
9784333a0d
buildqueue: clean up provides handling
...
Now that the pkgsrcinfo parsing matches pacman we can depend on it as the only
source and drop the DB fallbacks.
Instead of resolving provides at the end do it right away based on the targeted
DB state (real packages win, then fall back to providers)
2022-01-06 14:35:14 +01:00
Christoph Reiter
fa1bc945be
buildqueue: split out some code
2022-01-06 13:50:54 +01:00
Christoph Reiter
13fb300840
Remove the old buildqueue API
...
No longer used by autobuild
2021-08-26 08:07:42 +02:00
Christoph Reiter
8d011d0e72
api: start using pydantic models for the responses
2021-08-22 10:14:14 +02:00
Christoph Reiter
61ff97a5c8
api: add buildqueue2
...
Keep the old one for now to make porting easier
See #41
2021-08-21 11:23:04 +02:00
Christoph Reiter
9da32766cd
This should be even faster
...
we compare makedepends count when breaking, so compare two ends of the sorted list
2021-07-12 08:07:48 +02:00
Christoph Reiter
d67bc4a207
sort to break cycles early
2021-07-12 07:05:45 +02:00
Christoph Reiter
0a1435a88f
Some cleanups for the update trigger
...
Use an Event() so we can queue an update during an update as well.
Use lru_cache() for the singleton event.
2021-05-16 19:54:05 +02:00
Christoph Reiter
dca64c5797
api: add an endpoint for triggering an update
...
Rate limited to once every 5 minutes.
Can be called from GHA for example.
2021-05-16 15:40:45 +02:00
Christoph Reiter
30f6b5a2cc
Revert "buildqueue: rework API result structure"
...
This reverts commit a64b7145a92cc6a959f4bddbb69175bab73189c8.
2021-05-14 14:01:10 +02:00
Christoph Reiter
a64b7145a9
buildqueue: rework API result structure
...
Add a "builds" map, separating the info for each build type
This is a breaking change.
2021-05-14 13:55:10 +02:00
Christoph Reiter
f83dec1783
api: mark builds as new if their result isn't in the repo yet
2021-05-14 11:44:38 +02:00
Naveen M K
54d8fe06ac
Add search API
2021-04-30 06:50:31 +02:00
Christoph Reiter
4f3f3854c1
mypy fixes
2021-04-02 11:02:52 +02:00
Christoph Reiter
d2265bac70
api: expose if we should build a soruce package
...
In case we only added a new build for the same version there is no need
to build a source package, since it likely already exists in the repo.
2021-04-02 10:53:11 +02:00
Christoph Reiter
02cbcafdd2
Don't give up when breaking cycles
2021-03-27 14:51:28 +01:00
Christoph Reiter
79b082442e
buildqueue: break dependency cycles
...
instead of giving up and using a random order
2021-02-20 07:59:19 +01:00
Christoph Reiter
5634f178e5
Merge the package removals in the update queue
...
And add an API for it as well
2021-01-23 10:16:38 +01:00
Christoph Reiter
0e95b6bc66
buildqueue: remove query parameters
...
no longer used/needed
2021-01-17 12:58:58 +01:00
Christoph Reiter
5b30b5971f
api: remove include_vcs param
...
autobuild can deal with them now
2020-10-01 19:03:37 +02:00
Christoph Reiter
63c772b878
api: properly implement dependency sorting
...
we don't have a transitive relation, so simple sorting doesn't work
2020-10-01 18:40:49 +02:00
Christoph Reiter
321447ab08
Don't fill in provides for existing package names
...
Fixes #31
2020-09-21 09:08:53 +02:00
Christoph Reiter
87e97f1d07
buildqueue: group all package information by the containing repo
...
This will allow us to build them one repo/environ at a time
2020-09-15 20:47:08 +02:00
Christoph Reiter
882ad76791
buildqueue: handle multiple packages in the queue providing the same package
...
Say we have foo and foo-git, both providing foo, then we have to depend on both
and let pacman figure out which to install if it's required in a build.
2020-09-14 08:46:42 +02:00
Christoph Reiter
fff2ee593b
buildqueue: Default to not include vcs packages again
...
Most of them are broken and don't produce the version they advertise,
which makes it hard to deal with them in an automated fashion.
2020-09-14 08:38:44 +02:00
Christoph Reiter
63a4725bb8
Include VCS packages in the buildqueue API
2020-09-13 10:50:13 +02:00
Christoph Reiter
ddbd827d7d
api: look at pkgname and not pkgbase for finding new packages
...
this made PKGBUILDs gaining new packages not show up those packages
2020-08-27 22:16:30 +02:00
Christoph
9dc052cf91
api: expose dependencies between packages in the build queue
...
The list is still returned in the order in which it should be built
but now also contains a list of dependencies. This allows us to
install them from staging or skip sets of packages if one fails to build.
2020-08-01 14:15:51 +02:00
Christoph Reiter
20aeeb15b9
api: expose pkgbase
2020-07-31 19:43:05 +02:00
Christoph Reiter
8c8597234a
Refactor dependency container types
2020-07-11 12:32:46 +02:00
Christoph Reiter
0f769150e2
buildqueue: fix package list missing entries for new packages
2020-07-11 10:12:44 +02:00
Christoph Reiter
0e57b832e5
Add some API for getting the packages to build
...
This is just a first draft.
2020-07-10 09:45:49 +02:00