[gentoo-dev] News Item: LastPass package migration - v2

2016-05-19 Thread Göktürk Yüksek
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Here's the version 2 with the fixed author information. I forgot to
send the initial email to the PR team, so doing that now. Will commit
in 72 hours if there are no objections.

- -- 

Title: LastPass package migration
Author: Göktürk Yüksek 
Author: Robin H. Johnson 
Content-Type: text/plain
Posted: 2016-05-15
Revision: 1
News-Item-Format: 1.0
Display-If-Installed: app-admin/lastpass

LastPass-3 and earlier versions installed browser extensions along
with the necessary binary components. LastPass-4 and later versions
install only the binary components and leave installing the browser
extensions to the user. Furthermore, LastPass-3 is not available
anymore, it will be removed soon and users are required to upgrade. A
transparent package move is not possible due to the mentioned changes
and a manual migration is required.

The currently installed package must be removed before proceeding with
the migration:

  emerge --unmerge --ask app-admin/lastpass

LastPass for Firefox users can safely upgrade to version 4 by visiting
the official LastPass website and following the download instructions.
The browser extension already contains the required binary components.
No packages need to be installed.

Users of Chrome/Chromium and Opera browsers need to switch to
app-admin/lastpass-binary-features and follow the instructions
displayed on the screen after the installation to complete the process.

-BEGIN PGP SIGNATURE-

iQEcBAEBCgAGBQJXPpz0AAoJEIT4AuXAiM4zZyMH/RX2ISvUhW4DRE0Ntq+k4CHY
Oe7NNvNprEPxECkn1TiD/NsP0jEGjXS5SFA3jvu11c9dalnXtQ/SrBiTOI24NPj4
74/2gDzgJEYvDxIc2USCOxs2QXaB9L08n1MIFu4fACkqSR4wnJrR+ggq6BkMrY/J
ga9XIVEOjbA9XfcHplBLZ+1vlcZCB6rYK5i8EyB/Slp6lDw4MZ1M63aF3O2nON8W
B7EmZ4EjR7sWjnWnHevvwXJ82xpGlYr4bgJhITJ55s9wbohcavsDyFZTj/GudZDl
NUytv8UVPtZp6PWqfBhPpLmts3SQFzhGNunHCm8Gmurcv7paQJgF1MApM9NZ4Fg=
=bSjH
-END PGP SIGNATURE-



Re: [gentoo-dev] [PATCH] flag-o-matic.eclass: bugfix for get-flag()

2016-05-19 Thread Mike Frysinger
On 16 May 2016 14:17, rindeal wrote:
> So this is what it looks like now:

still missing tests.  see eclass/tests/flag-o-matic.sh.

> -   local f var findflag="$1"
> -
> -   # this code looks a little flaky but seems to work for
> -   # everything we want ...
> -   # for example, if CFLAGS="-march=i686":
> -   # `get-flag -march` == "-march=i686"
> -   # `get-flag march` == "i686"
> +   local var pattern="${1}"

drop the braces for builtin vars

> for var in $(all-flag-vars) ; do
> -   for f in ${!var} ; do
> -   if [ "${f/${findflag}}" != "${f}" ] ; then
> -   printf "%s\n" "${f/-${findflag}=}"
> +   local i flags=( ${!var} )
> +   for (( i=${#flags[@]}-1; i>=0; i-- )) ; do

omitting spaces doesn't make code faster, it just makes it unreadable.
for (( i = ${#flags[@]} - 1; i >= 0; --i )) ; do

stick a comment above this for loop explaining why we walk backwards.

> +   local needle="-${pattern#-}" # force dash on

avoid inline comments and make them complete sentences.
# Make sure we anchor to the leading dash.
local needle="-${pattern#-}"

> +   local haystack="${flags[i]%%=*}" # we're comparing flags, not 
> values

it's a bit easier to read if you unpack the flag explicitly.
local flag=${flags[i]}

> +   if [[ ${haystack##${needle}} == '' ]] ; then

use a -z test instead of comparing to ''
-mike


signature.asc
Description: Digital signature


Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Mike Frysinger
On 18 May 2016 22:25, aide...@gentoo.org wrote:
> awk doesn't have the -i option like sed and if editing file in place is
> desired, additional steps are required. eawk uses tmp file to make it
> look to the caller editing happens in place.

what's your real use case ?  i've never once thought "man, i wish i could
run an awk script and modify a file in place".  and i write awk most days.
-mike


signature.asc
Description: Digital signature


Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Mike Frysinger
On 20 May 2016 02:16, Mart Raudsepp wrote:
> I would like if such a function would explicitly document that calling
> this function means the caller should DEPEND on an awk provider.
> Similarly, I would like that all ebuild that call 'sed' actually DEPEND
> on sed, not just half of them.
> I would also like that no ebuild would assume packages in @system to be
> present, beyond those dictated by PMS (unpackers and such).

this is all a terrible terrible idea and has been hashed/explained a
number of times on this list.  have you ever tried looking at the tools
configure scripts run ?
-mike


signature.asc
Description: Digital signature


Re: [gentoo-dev] new developers' keyword requests

2016-05-19 Thread Daniel Campbell
On 05/19/2016 07:51 AM, Jeroen Roovers wrote:
> Perhaps it's a good idea to add a section to the devmanual about adding
> new keywords to packages.
> 
> Recruits in particular might benefit from some background on what
> keywording means and when it should be done, especially before they
> start maintaining packages and then realise their packages are so
> beautiful that they positively *deserve* to have some random keywords
> added. This is not productive.
> 
> The way it works is that users of
> specific architectures find that a package works for them on their
> systems (which have enough resources and have the correct interfaces for
> that particular program to be used conveniently, and so on), and that
> they then request that their architecture keyword be added. What
> doesn't work is having a handful of keywords on a package that nobody
> cares about who actually uses the architectures in question.
> 
> Since over the years the Random Keyword Requests happen a *lot* right
> after recruitment, it might even be useful to ask about this in the
> quizzes. (The answer: your time is better spent fixing actual bugs.
> bumping versions, adding features and maintaining a stable branch,
> rather than raising the architecture count for your packages for no
> adequately explored reason.)
> 
> 
> Kind regards,
>  jer
> 
To make sure I understand what you're getting at, are you saying some
devs get on board and then request to add keywords to packages that they
already maintain? If said arches are already supported in Gentoo I see
little problem with that, especially if they intend on being part of the
arch testing team for that arch or have access to the hardware.

But if this is a case of developers asking for arch keywords to be added
for arches that aren't (yet) supported in Gentoo, I agree that we need
some sort of formal requirements, much like we do for stabilization (30
days no bugs, etc). Covering it in the devmanual is a great idea.

How many packages do you think is necessary before 'critical mass' is
reached and Gentoo should support it? I'm thinking it's less about the
number of packages, and more about the community around that arch as
well as whether or not a stage3 can be built for that arch in a
reasonable timeframe. If it can get coreutils up and going, a stage3 can
be built, and the handbook can be followed for that arch without issues
(say, with an overlay), it seems like that would be a case for adding
the keyword.

But adding keywords, as we know, comes with maintenance burden. New
arches can't get supported without people active in the community and
actually using the hardware. If that interest isn't there, why should we
add the keywords to the main repo? Overlays may be a fine alternative.

Just my 2¢. Thanks for bringing this up, it's a topic I didn't know was
a concern.

-- 
Daniel Campbell - Gentoo Developer
OpenPGP Key: 0x1EA055D6 @ hkp://keys.gnupg.net
fpr: AE03 9064 AE00 053C 270C  1DE4 6F7A 9091 1EA0 55D6



signature.asc
Description: OpenPGP digital signature


Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Göktürk Yüksek
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA512

Mart Raudsepp:
> Ühel kenal päeval, K, 18.05.2016 kell 22:25, kirjutas 
> aide...@gentoo.org:
>> From: Amadeusz Żołnowski 
>> 
>> awk doesn't have the -i option like sed and if editing file in 
>> place is desired, additional steps are required. eawk uses tmp 
>> file to make it look to the caller editing happens in place. ---
>>  eclass/eutils.eclass | 13 + 1 file changed, 13 
>> insertions(+)
>> 
>> diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass index 
>> dbedffe..e331f1b 100644 --- a/eclass/eutils.eclass +++ 
>> b/eclass/eutils.eclass @@ -20,6 +20,19 @@ _EUTILS_ECLASS=1
>> 
>> inherit multilib toolchain-funcs
>> 
>> +# @FUNCTION: eawk +# @USAGE:   +# @DESCRIPTION: +# 
>> Edit file  in place with awk. Pass all arguments following
>>   to +# awk.
>> 
> 
> I would like if such a function would explicitly document that 
> calling this function means the caller should DEPEND on an awk 
> provider. Similarly, I would like that all ebuild that call 'sed' 
> actually DEPEND on sed, not just half of them.

According to PMS, sed is guaranteed to be present[0].

> I would also like that no ebuild would assume packages in @system 
> to be present, beyond those dictated by PMS (unpackers and such).
> 
Quoting PMS [1]:

"[...] in most cases this means that the only packages that can be
assumed to be present are those listed in the base profile or
equivalent [...]"

Implicit system dependencies are documented in devmanual as well. May
I ask why you are against it?

> Mart
> 

[0] https://dev.gentoo.org/~ulm/pms/head/pms.html#x1-12700011.3.1.1
[1] https://dev.gentoo.org/~ulm/pms/head/pms.html#x1-12600011.3.1
-BEGIN PGP SIGNATURE-

iQEcBAEBCgAGBQJXPkxQAAoJEIT4AuXAiM4zH/gH/2KJIdAbL1x8TfvWIeOnjQ4E
IatAXY9DentQgGVFHU+bwOj+bdgMfaU3QACjDAD/GOPYTwrOSlHD2dK7spkou7RS
VY3voejyvK1tHASooMvEaaH8VQ9HMe82JDS64YTfxMLFb8FcwJOYde3plVSFPArA
UGhNCzEpgMJBkd89lS/BsmtHqS0czuAO+VJdVttMo1EyW8CR1s6ou+FVzymgJM/+
P8Zg6eVIcyJOQqQcnpRbDPvSw2lGNP7BofZjFng578DNz3F1LAtdBFBujNNT3kUW
FgbifW7Y53hnx3nYjjBigBp8ERm3HuhDXQiQMNEOsFlfIWKarp4017NC8BmH9i4=
=jHCS
-END PGP SIGNATURE-



Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Mart Raudsepp
Ühel kenal päeval, K, 18.05.2016 kell 22:25, kirjutas
aide...@gentoo.org:
> From: Amadeusz Żołnowski 
> 
> awk doesn't have the -i option like sed and if editing file in place
> is
> desired, additional steps are required. eawk uses tmp file to make it
> look to the caller editing happens in place.
> ---
>  eclass/eutils.eclass | 13 +
>  1 file changed, 13 insertions(+)
> 
> diff --git a/eclass/eutils.eclass b/eclass/eutils.eclass
> index dbedffe..e331f1b 100644
> --- a/eclass/eutils.eclass
> +++ b/eclass/eutils.eclass
> @@ -20,6 +20,19 @@ _EUTILS_ECLASS=1
>  
>  inherit multilib toolchain-funcs
>  
> +# @FUNCTION: eawk
> +# @USAGE:  
> +# @DESCRIPTION:
> +# Edit file  in place with awk. Pass all arguments following
>  to
> +# awk.
> 

I would like if such a function would explicitly document that calling
this function means the caller should DEPEND on an awk provider.
Similarly, I would like that all ebuild that call 'sed' actually DEPEND
on sed, not just half of them.
I would also like that no ebuild would assume packages in @system to be
present, beyond those dictated by PMS (unpackers and such).

Mart



Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Robin H. Johnson
On Thu, May 19, 2016 at 10:50:48PM +0100, Amadeusz Żołnowski wrote:
> "Robin H. Johnson"  writes:
> > 1.
> > If your AWK command has an error, then this clobbers the file, a
> > better variant, with die, would be:
> > awk "$@" "$f" >"${tmpf}" || die "awk failed..."
> > cp -f "${tmpf}" "$f" || die "copy back failed"
> 
> Thanks! On the one hand it's a simple function, and on the other hand
> there are several things which can go wrong. I will submit corrected
> version with unit test.
> 
> Why '-f' is required?
Corner cases w/ copying and bad ebuild usage (specifically running
ebuild as two different non-root users during development). Mostly
habit.

Another thought I had, is that if you're using eawk on something in
$ROOT, you're also going to clobber ownership, permissions and extended
attributes.

> >> # @USAGE:  
> > This calling format is also a problem if they intended to pass multiple
> > files to the command, or if they do so accidentally. 
> >
> > Eg, an unprotected glob in the first argument, eg:
> > eawk foo* '/foobar/{$1="x"; print $0}'
> >
> > If foo1 and foo2 existed, this would be considered as:
> > awk foo2 /foobar/{$1="x"; print $0}' foo1
> >
> > which really will NOT have the desired effect.
> 
> I am aware of this. I considered before:
> 
>   a) eawk files... -- awk_args...
>   b) eawk awk_args -- pattern files...
> 
> making '--' required, but that just complicates usage and function
> itself. And anyway isn't it true for any other command with careless
> glob use?
> 
> I have documented that function takes a file, not files. The effect of
> misuse eawk would be awk error. Although maybe it would be useful to
> support multiple files? Then I'd go for variant (b) probably.
If we declare the calling format in BSD style:
 

Then this is negated, but means you need to be able to find the first
file in the list, which requires parsing the options correctly.

Another variation that you haven't considered above is passing multiple
programs to awk via -e or -f options, in which case there is no
non-option program argument.

I agree generally that this is a useful idea, but there's a lot of
caveats and corner-cases :-(.

-- 
Robin Hugh Johnson
Gentoo Linux: Dev, Infra Lead, Foundation Trustee & Treasurer
E-Mail   : robb...@gentoo.org
GnuPG FP : 11ACBA4F 4778E3F6 E4EDF38E B27B944E 34884E85
GnuPG FP : 7D0B3CEB E9B85B1F 825BCECF EE05E6F6 A48F6136



Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Amadeusz Żołnowski
"Robin H. Johnson"  writes:
> 1.
> If your AWK command has an error, then this clobbers the file, a
> better variant, with die, would be:
> awk "$@" "$f" >"${tmpf}" || die "awk failed..."
> cp -f "${tmpf}" "$f" || die "copy back failed"

Thanks! On the one hand it's a simple function, and on the other hand
there are several things which can go wrong. I will submit corrected
version with unit test.

Why '-f' is required?


>> # @USAGE:  
> This calling format is also a problem if they intended to pass multiple
> files to the command, or if they do so accidentally. 
>
> Eg, an unprotected glob in the first argument, eg:
> eawk foo* '/foobar/{$1="x"; print $0}'
>
> If foo1 and foo2 existed, this would be considered as:
> awk foo2 /foobar/{$1="x"; print $0}' foo1
>
> which really will NOT have the desired effect.

I am aware of this. I considered before:

  a) eawk files... -- awk_args...
  b) eawk awk_args -- pattern files...

making '--' required, but that just complicates usage and function
itself. And anyway isn't it true for any other command with careless
glob use?

I have documented that function takes a file, not files. The effect of
misuse eawk would be awk error. Although maybe it would be useful to
support multiple files? Then I'd go for variant (b) probably.

Cheers,

-- 
Amadeusz Żołnowski


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Amadeusz Żołnowski
Ulrich Mueller  writes:
> Yes, of course. "|| die -n || return" if you want the function to
> return at that point, if it was called under nonfatal.
>
>> https://blogs.gentoo.org/mgorny/2015/11/13/the-ultimate-guide-to-eapi-6
>
> Note that the ${?} in the code example there is redundant.

Why redundant? I imagine we can call it like:

if ! nonfatal efoo; then
do_something_on_error
fi

can't we?

-- Amadeusz Żołnowski


signature.asc
Description: PGP signature


Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Ulrich Mueller
> On Thu, 19 May 2016, Mart Raudsepp wrote:

>> Ulrich Mueller  writes:
>> > The EAPI 6 method would be to use "|| die -n". Then the caller
>> > either call "eawk" if the function should die automatically, or
>> > "nonfatal eawk" if it should return with an error status.

> Don't you possibly need a || return as well in there if it isn't the
> last things in the function?

Yes, of course. "|| die -n || return" if you want the function to
return at that point, if it was called under nonfatal.

> https://blogs.gentoo.org/mgorny/2015/11/13/the-ultimate-guide-to-eapi-6

Note that the ${?} in the code example there is redundant.

Ulrich


pgpzKKMVTEdhY.pgp
Description: PGP signature


Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Mart Raudsepp
Ühel kenal päeval, N, 19.05.2016 kell 18:51, kirjutas Amadeusz
Żołnowski:
> Ulrich Mueller  writes:
> > The EAPI 6 method would be to use "|| die -n". Then the caller can
> > either call "eawk" if the function should die automatically, or
> > "nonfatal eawk" if it should return with an error status.

Don't you possibly need a || return as well in there if it isn't the
last things in the function?
https://blogs.gentoo.org/mgorny/2015/11/13/the-ultimate-guide-to-eapi-6

> Yes, that seems better. Hasn't it been introduced earlier than in
> EAPI 6?

die -n argument is new in EAPI 6
nonfatal was added in EAPI 4, together with the fatality defaults for
PM utilities.
See https://devmanual.gentoo.org/ebuild-writing/eapi/


Mart



Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Amadeusz Żołnowski
Ulrich Mueller  writes:
> The EAPI 6 method would be to use "|| die -n". Then the caller can
> either call "eawk" if the function should die automatically, or
> "nonfatal eawk" if it should return with an error status.

Yes, that seems better. Hasn't it been introduced earlier than in
EAPI 6?

-- 
Amadeusz Żołnowski


signature.asc
Description: PGP signature


Re: [gentoo-dev] new developers' keyword requests

2016-05-19 Thread Mike Gilbert
On Thu, May 19, 2016 at 10:51 AM, Jeroen Roovers  wrote:
> Perhaps it's a good idea to add a section to the devmanual about adding
> new keywords to packages.
>
> Recruits in particular might benefit from some background on what
> keywording means and when it should be done, especially before they
> start maintaining packages and then realise their packages are so
> beautiful that they positively *deserve* to have some random keywords
> added. This is not productive.
>
> The way it works is that users of
> specific architectures find that a package works for them on their
> systems (which have enough resources and have the correct interfaces for
> that particular program to be used conveniently, and so on), and that
> they then request that their architecture keyword be added. What
> doesn't work is having a handful of keywords on a package that nobody
> cares about who actually uses the architectures in question.
>
> Since over the years the Random Keyword Requests happen a *lot* right
> after recruitment, it might even be useful to ask about this in the
> quizzes. (The answer: your time is better spent fixing actual bugs.
> bumping versions, adding features and maintaining a stable branch,
> rather than raising the architecture count for your packages for no
> adequately explored reason.)
>
>
> Kind regards,
>  jer
>

Both ideas (devmanual update + quiz question) seem good to me.



[gentoo-dev] new developers' keyword requests

2016-05-19 Thread Jeroen Roovers
Perhaps it's a good idea to add a section to the devmanual about adding
new keywords to packages.

Recruits in particular might benefit from some background on what
keywording means and when it should be done, especially before they
start maintaining packages and then realise their packages are so
beautiful that they positively *deserve* to have some random keywords
added. This is not productive.

The way it works is that users of
specific architectures find that a package works for them on their
systems (which have enough resources and have the correct interfaces for
that particular program to be used conveniently, and so on), and that
they then request that their architecture keyword be added. What
doesn't work is having a handful of keywords on a package that nobody
cares about who actually uses the architectures in question.

Since over the years the Random Keyword Requests happen a *lot* right
after recruitment, it might even be useful to ask about this in the
quizzes. (The answer: your time is better spent fixing actual bugs.
bumping versions, adding features and maintaining a stable branch,
rather than raising the architecture count for your packages for no
adequately explored reason.)


Kind regards,
 jer



Re: [gentoo-dev] [PATCH] eutils.eclass: Add awk wrapper - eawk - edit file in place

2016-05-19 Thread Ulrich Mueller
> On Wed, 18 May 2016, Amadeusz Żołnowski wrote:

>> Also, wouldn't the absence of 'die' cause silent breakages?

> I want to caller decide whether die or not and what error messge to
> give.

The EAPI 6 method would be to use "|| die -n". Then the caller can
either call "eawk" if the function should die automatically, or
"nonfatal eawk" if it should return with an error status.

Ulrich


pgpdUEGb8D4lN.pgp
Description: PGP signature


Re: [gentoo-dev] Continuous Stabilization (Regarding Post Install Test Scripts)

2016-05-19 Thread Harald Alfred Weiner
Dear Pallav,

how about using a dedicated eclass for arch-testing?

E.g., you might provide a function in some eclass
that only runs when called from pkg_postinst [1]
phase AND when some configuration option is set.

Then a maintainer / arch tester might provide
the tests inside the ebuild directory, e.g.,
inside a hidden sub-directory .arch-tests or
something like that, include your eclass inside
the ebuild and call your test-function from pkg_postinst
or something like that...

[1]
https://devmanual.gentoo.org/ebuild-writing/functions/pkg_postinst/index.html


Best wishes,


Harald.

Harald Weiner
Institute of Applied Geometry

Johannes-Kepler-Universität
Altenberger Straße 69
A-4040 Linz
harald.wei...@jku.at
http://www.ag.jku.at

On 05/19/2016 09:45 AM, Pallav Agarwal wrote:
> This is a continuation of "[gentoo-dev] Proposal for changes for the
> next EAPI
> version" thread. Since the former subject isn't very relevant anymore.
>
> Target:
> A place to provide scripts that can be used by an automated
> arch-tester bot to
> stabilize Gentoo packages. These scripts can be as simple as a one liner
>
> `python -c "import module"`
>
> for example in case of a python module. Or a little complex, for
> example to test
> different features in case of different USE flags.
> The main target is to alleviate the problems and unreliability from
> ARCH Testing
> and to more thoroughly and automatically test packages.
>
> 1 - Some important factors to consider from the previous thread:
> a) This must be run POST-MERGE so that problems after merging can be
> detected
> b) It should be hopefully scalable in both directions - similar tests
> for multiple packages
>  - different tests for different versions of same package.
> c) If a users want, they should be able to run these tests too (If
> they do, bug reports
> collected will be very valuable.
> d) Most common opinion was to not have an EAPI change unless this
> gains enough
> use or demand.
> e) If implemented as a part of ebuild, it can have all benefits of an
> ebuild syntax.
> Different versions of a package can have different test scripts. Test
> code part can
> have its own conditional runtime dependencies (only to take effect IF
> testing is on).
> Also, it can have specific parts of test run or not dependent on USE
> flags enabled.
>
> 2 - Some suggested solutions
> a) The original proposed solution:
> To have an extra phase ci_test() or something similar that would be
> run ONLY when
> emerge is called with ci-test option. That way rest of the ebuild
> doesn't have to change,
> and for normal users, this wouldn't run unless they explicitly want it to.
>
> PROS:
> i) Full use of ebuild syntax
> ii) Users can also use.
> CONS:
> i) Requires EAPI change
> ii) Burdens the ebuild with more stuff
> iii) Existing ebuilds need to be changed (one more revision per ebuild)
>
> b) Having an extra global USE flag "ci_test" and putting test code in
> pkg_postinst
> phase under `if use ci_test` condition.
>
> PROS:
> i) Full use of ebuild syntax
> ii) Users can enable ci-test too
> iii) Changes to current ebuild standard is negligible
> CONS:
> i) Burdens the ebuild with more stuff
> ii) Existing ebuilds need to be changed (one more revision per ebuild)
>
> c) Creating a Gentoo Overlay with ebuilds which do test packages. And
> the testing
> script would be part of the pkg_postinst existing function.
> For example, overlay could have a package dev-python/numpy-ci-test with:
> ```
> DEPEND="dev-python/numpy"
> pkg_postinstall() {
> python -c "import numpy; numpy.test()" || die "failed"
> }
> ```
> as it's content.
>
> PROS:
> i) No change to existing ebuilds or EAPI
> ii) Can almost use all benefits of ebuild syntax
> iii) Anybody can submit tests for ebuilds to the corresponding ebuild
> on overlay
> iv) Eclasses can define CI tests for multiple packages at once
> CONS:
> i) Users will almost never use an overlay just for testing
> ii) Maintainer will have to submit one script for the portage tree and
> one for the overlay.
> Many maintainers would prefer to skip that.
> iii) Ebuild names need to be different from the ones in portage tree,
> so the process isn't
> transparent anymore. We first need to check if -ci-test package exists
> or not.
>
>
> Any more suggestions/comments/methods are invited.
>
> ---
> Regards,
> Pallav



[gentoo-dev] Continuous Stabilization (Regarding Post Install Test Scripts)

2016-05-19 Thread Pallav Agarwal
This is a continuation of "[gentoo-dev] Proposal for changes for the next
EAPI
version" thread. Since the former subject isn't very relevant anymore.

Target:
A place to provide scripts that can be used by an automated arch-tester bot
to
stabilize Gentoo packages. These scripts can be as simple as a one liner

`python -c "import module"`

for example in case of a python module. Or a little complex, for example to
test
different features in case of different USE flags.
The main target is to alleviate the problems and unreliability from ARCH
Testing
and to more thoroughly and automatically test packages.

1 - Some important factors to consider from the previous thread:
a) This must be run POST-MERGE so that problems after merging can be
detected
b) It should be hopefully scalable in both directions - similar tests for
multiple packages
 - different tests for different versions of same package.
c) If a users want, they should be able to run these tests too (If they do,
bug reports
collected will be very valuable.
d) Most common opinion was to not have an EAPI change unless this gains
enough
use or demand.
e) If implemented as a part of ebuild, it can have all benefits of an
ebuild syntax.
Different versions of a package can have different test scripts. Test code
part can
have its own conditional runtime dependencies (only to take effect IF
testing is on).
Also, it can have specific parts of test run or not dependent on USE flags
enabled.

2 - Some suggested solutions
a) The original proposed solution:
To have an extra phase ci_test() or something similar that would be run
ONLY when
emerge is called with ci-test option. That way rest of the ebuild doesn't
have to change,
and for normal users, this wouldn't run unless they explicitly want it to.

PROS:
i) Full use of ebuild syntax
ii) Users can also use.
CONS:
i) Requires EAPI change
ii) Burdens the ebuild with more stuff
iii) Existing ebuilds need to be changed (one more revision per ebuild)

b) Having an extra global USE flag "ci_test" and putting test code in
pkg_postinst
phase under `if use ci_test` condition.

PROS:
i) Full use of ebuild syntax
ii) Users can enable ci-test too
iii) Changes to current ebuild standard is negligible
CONS:
i) Burdens the ebuild with more stuff
ii) Existing ebuilds need to be changed (one more revision per ebuild)

c) Creating a Gentoo Overlay with ebuilds which do test packages. And the
testing
script would be part of the pkg_postinst existing function.
For example, overlay could have a package dev-python/numpy-ci-test with:
```
DEPEND="dev-python/numpy"
pkg_postinstall() {
python -c "import numpy; numpy.test()" || die "failed"
}
```
as it's content.

PROS:
i) No change to existing ebuilds or EAPI
ii) Can almost use all benefits of ebuild syntax
iii) Anybody can submit tests for ebuilds to the corresponding ebuild on
overlay
iv) Eclasses can define CI tests for multiple packages at once
CONS:
i) Users will almost never use an overlay just for testing
ii) Maintainer will have to submit one script for the portage tree and one
for the overlay.
Many maintainers would prefer to skip that.
iii) Ebuild names need to be different from the ones in portage tree, so
the process isn't
transparent anymore. We first need to check if -ci-test package exists or
not.


Any more suggestions/comments/methods are invited.

---
Regards,
Pallav