1 |
On 17 May 2016 at 19:37, Pallav Agarwal <pallavagarwal07@×××××.com> wrote: |
2 |
> For normal users we wouldn't. But currently, arch-testers need to make a |
3 |
> judgement call on what to test when a stable-req bug is filed. Tests run in |
4 |
> src_test are provided by upstream, and does not guarantee that a package |
5 |
> that has been merged will actually run on the system. |
6 |
> If the maintainer could add a couple small scripts to check basic |
7 |
> functionality |
8 |
> of the merged package, it would make testing for arch testers much easier |
9 |
> and reliable. |
10 |
> Let me give an example. Let's say |
11 |
> app-misc/screenfetch-2.7.7 is the current stable package for screenfetch in |
12 |
> the portage tree. |
13 |
> However, on running, it produces an error on the top, along with the proper |
14 |
> output. |
15 |
> If screenfetch-3.0.0 happens to fix that error, maintainer can add a simple |
16 |
> script |
17 |
> |
18 |
> if [ "$(screenfetch 2>&1 1>/dev/null)" != "" ] then |
19 |
> eerror "Still producing error" |
20 |
> fi |
21 |
> |
22 |
> To make sure the build is properly updating the screenfetch version, and |
23 |
> that |
24 |
> the bug has in fact been fixed. This is the only way I can see to reliabily |
25 |
> and automatically test packages that have been merged successfully |
26 |
|
27 |
|
28 |
I don't think this needs to be an EAPI change. And if we can acheive |
29 |
the goal without one, the better. |
30 |
|
31 |
For instance, repoman is progressing in a way that repoman is |
32 |
becomming pluggable, and that will hopefully be more useful. |
33 |
|
34 |
Mostly, because it will allow us to define checks based on "inherit" |
35 |
lines, and based on project/maintainer values in metadata.xml, in |
36 |
theory. |
37 |
|
38 |
You *could* theoretically augment this on an ebuild-by-ebuild basis, |
39 |
but I would encourage doing as much as we can in this sphere outside |
40 |
that workflow, because it will burden ebuilds with unhelpful stuff, |
41 |
and it will increase commit churn on gentoo simply for QA reasons. |
42 |
|
43 |
But the reality is, you have to think not on ebuild-by-ebuild basis, |
44 |
you have to think how this scales in volume, both against large |
45 |
repositories of ebuilds, and how it scales in regards to |
46 |
1-maintainer-thousands-of-ebuilds and 1-project-thousands-of-ebuilds |
47 |
and 1-eclass-thousands-of-ebuilds scales. |
48 |
|
49 |
For instance, there's very obvious applications for sets of gentoo |
50 |
defined quality tests in dev-perl/, but anything we devise is going to |
51 |
apply to all of them. _And_ to achieve our goal, we will likely need |
52 |
external dependencies satisfied. |
53 |
|
54 |
And I'd hate to be burdening those hundreds of ebuilds with that |
55 |
overhead, its much better implemented out-of-band first, and then only |
56 |
supplemented on an ebuild-by-ebuild basis. |
57 |
|
58 |
And under this scheme, individual projects can define their custom |
59 |
hooks and tricks in the ebuild themselves as metadata ( like we |
60 |
currently to via eclass variables ), and be handled, not by portage, |
61 |
or PMS, not by EAPI, but by the QA tool in conjunction with eclass |
62 |
designers. |
63 |
|
64 |
|
65 |
Then, no need for formal EAPI is required. |
66 |
|
67 |
The QA tool just sources the ebuild in bash, hands the metadata to the |
68 |
plugin, and the plugin can then execute whatever functions it wanted. |
69 |
|
70 |
And the other benefit of doing this outside EAPI: It doesn't have to |
71 |
be part of PMS, and maintainers of other packaging tools are not |
72 |
compelled to implement a feature that is not relevant to end users. |
73 |
|
74 |
And this also means our velocity with regards to changing what we do |
75 |
here is much quicker, as we're no longer bound by the tight QA |
76 |
controls we have to make sure we don't break users systems, because we |
77 |
are *only* targeting devs. |
78 |
|
79 |
-- |
80 |
Kent |
81 |
|
82 |
KENTNL - https://metacpan.org/author/KENTNL |