FAQ
I've seen several posts recently about how authors want a way to
"abandon" modules they no longer maintain.

I'm sure this has come up before, but I want to kick the tires in
discussion again.

Let's create CPAN author "ABANDONED" and have authors either assign
co-maint to it or transfer full ownership to it. Then it would be
trivial to produce a list of abandoned modules from the database and
anything in there could be claimed without a waiting period. That
could be up on the web or even just dumped as a new index file onto
CPAN and mirrored. Sites like search.cpan.org could then check the
index and flag modules as abandoned on their pages.

Advantages:

* Simple to implement. We can do it with today's infrastructure.
* Simple for authors. They use an existing PAUSE interface for
ownership transfer
* Consistent. Module ownership data kept in PAUSE, not scattered on the net.

Disadvantages:

* Still requires a little work to publish the index somewhere
* Have to update PAUSE instructions for "how to abandon"
* It's a bit hackish(!?)

Are there any more significant disadvantages? If not, can we JFDI and
announce it and declare victory?

-- David

Search Discussions

  • Ken Williams at Aug 25, 2009 at 6:02 pm

    On Tue, Aug 25, 2009 at 7:47 AM, David Goldenwrote:
    Let's create CPAN author "ABANDONED" and have authors either assign
    co-maint to it or transfer full ownership to it.
    Why isn't the DSLI status field sufficient for this? It's a lot less hackish.

    -Ken
  • David Golden at Aug 25, 2009 at 6:31 pm

    On Tue, Aug 25, 2009 at 2:02 PM, Ken Williamswrote:
    On Tue, Aug 25, 2009 at 7:47 AM, David Goldenwrote:
    Let's create CPAN author "ABANDONED" and have authors either assign
    co-maint to it or transfer full ownership to it.
    Why isn't the DSLI status field sufficient for this?  It's a lot less hackish.
    I only see the option to set DSLIP for registered modules. So using
    DSLIP would mean either:

    (a) registering a module in order to abandon it; unlikely plus extra
    manual registration approval work for admins
    (b) opening up DSLIP to all modules, regardless of registration (or
    otherwise "autoregistering" them)

    I'm semi-supportive of (b), but would want to figure out whether
    instead DSLIP info should be added to the META spec instead of managed
    through PAUSE.

    -- David
  • Andreas J. Koenig at Aug 25, 2009 at 9:51 pm

    On Tue, 25 Aug 2009 14:31:21 -0400, David Golden said:
    Why isn't the DSLI status field sufficient for this?  It's a lot less hackish.
    I only see the option to set DSLIP for registered modules. So using
    DSLIP would mean either:
    (a) registering a module in order to abandon it; unlikely plus extra
    manual registration approval work for admins
    (b) opening up DSLIP to all modules, regardless of registration (or
    otherwise "autoregistering" them)
    I'm semi-supportive of (b), but would want to figure out whether
    instead DSLIP info should be added to the META spec instead of managed
    through PAUSE.
    I like both some kind of autoregistration and keeping the process on
    PAUSE. Autoregistration if done right could take off a lot of burdon
    from pause admins. (I've started coding it once but failed to do it
    right, so it stalled.) Keeping the DSLIP form on pause cares for a
    centralized input validation.

    --
    andreas
  • David Golden at Aug 25, 2009 at 10:32 pm

    On Tue, Aug 25, 2009 at 5:51 PM, Andreas J. Koenigwrote:
    I like both some kind of autoregistration and keeping the process on
    PAUSE. Autoregistration if done right could take off a lot of burdon
    from pause admins. (I've started coding it once but failed to do it
    right, so it stalled.) Keeping the DSLIP form on pause cares for a
    centralized input validation.
    If we go this direction, I'd like to argue for DSLIP in META, with
    well-defined values that PAUSE validates on upload. Or at least D,
    S & L. I don't really care about I (Interface) for META, and
    'license' is already there for P.

    This would have several benefits, I think. It would give a place to
    keep DSL with distributions, which could be useful for static
    analysis. Knowing what languages are needed could help the toolchain
    automatically check for appropriate compilers. It could also be used
    for eventually moving away from underscore in version numbers as a way
    to signal PAUSE not to index a distribution.

    PAUSE could parse META, validate it, and then update the database.

    What do people think?

    David
  • Ken Williams at Aug 26, 2009 at 2:15 am

    On Tue, Aug 25, 2009 at 5:31 PM, David Goldenwrote:
    On Tue, Aug 25, 2009 at 5:51 PM, Andreas J.
    Koenigwrote:
    I like both some kind of autoregistration and keeping the process on
    PAUSE. Autoregistration if done right could take off a lot of burdon
    from pause admins. (I've started coding it once but failed to do it
    right, so it stalled.) Keeping the DSLIP form on pause cares for a
    centralized input validation.
    If we go this direction, I'd like to argue for DSLIP in META, with
    well-defined values that PAUSE validates on upload.    Or at least D,
    S & L.  I don't really care about I (Interface) for META, and
    'license' is already there for P.

    This would have several benefits, I think.  It would give a place to
    keep DSL with distributions, which could be useful for static
    analysis.  Knowing what languages are needed could help the toolchain
    automatically check for appropriate compilers.  It could also be used
    for eventually moving away from underscore in version numbers as a way
    to signal PAUSE not to index a distribution.

    PAUSE could parse META, validate it, and then update the database.

    What do people think?
    I think that sounds like a good idea in principal, though it's
    somewhat orthogonal to solving the "abandoned distribution" problem.
    If I've got abandoned distributions (and - what do you know - I do!)
    I'm not likely to get my shit together enough to upload a new
    distribution just for the purpose of changing flags in the META. But
    I could easily visit PAUSE and push a couple buttons to change the
    status.

    The question then becomes: what happens if someone uploads a META
    containing a certain set of DSLIP flags, then changes them via the
    PAUSE web interface? Is the META file supposed to get updated? (No,
    because that would at the very least break any checksums/signatures.)
    Should it stay out of sync? (Yuck.) Should PAUSE refuse to accept
    DSLIP changes if DSLIP is set in the META? (Thus negating the whole
    purpose we're talking about this...)

    Also, I'm not sure it really makes sense to put "abandonedness"
    information right in the distribution. When people are releasing
    code, they rarely think they're creating an orphan. That kind of info
    really sits one level above the distribution, e.g. if the code were
    distributed on a user's web page, the user would put big red letters
    saying "I'M NOT REALLY WORKING ON THIS CODE ANYMORE" next to the
    download link, and they wouldn't touch the tarball itself. The only
    difference for people hosting their packages on CPAN is that there's
    no place to put those big red letters. Yet.

    -Ken
  • David Golden at Aug 26, 2009 at 2:28 am

    On Tue, Aug 25, 2009 at 10:15 PM, Ken Williamswrote:
    I think that sounds like a good idea in principal, though it's
    somewhat orthogonal to solving the "abandoned distribution" problem.
    Not quite orthogonal, but not co-linear. I wanted to get the idea out
    there to see if solving one precluded the other.
    If I've got abandoned distributions (and - what do you know - I do!)
    I'm not likely to get my shit together enough to upload a new
    distribution just for the purpose of changing flags in the META.  But
    I could easily visit PAUSE and push a couple buttons to change the
    status.

    The question then becomes: what happens if someone uploads a META
    containing a certain set of DSLIP flags, then changes them via the
    PAUSE web interface?
    I think the last change wins. But new uploads automatically update PAUSE.
    Is the META file supposed to get updated?  (No,
    because that would at the very least break any checksums/signatures.)
    Should it stay out of sync?  (Yuck.)  Should PAUSE refuse to accept
    DSLIP changes if DSLIP is set in the META?  (Thus negating the whole
    purpose we're talking about this...)
    META file is point-in-time. It gets stale, too. I don't have a
    problem with it going out of sync.
    Also, I'm not sure it really makes sense to put "abandonedness"
    information right in the distribution.  When people are releasing
    code, they rarely think they're creating an orphan.
    Some do -- with big "DEPRECATED" or "no longer maintained" notices.

    But in general, I'd like to see DSLI info in META. In the case of
    abandonment, I see no problem having PAUSE update DSLI directly and
    have things be out of sync. Easy all around.

    I still like the ABANDONED author idea though -- no work required!

    -- David
  • Ask Bjørn Hansen at Aug 26, 2009 at 4:40 am

    On Aug 26, 2009, at 10:27, David Golden wrote:

    I still like the ABANDONED author idea though -- no work required!
    Do you move the distribution files to the A/AB/ABANDONED/ directory
    then? If so, that's work and it'll pollute backpan with duplicates
    (and require updating of indexes; breaks the previous "stable URLs"
    and so on). (Not moving them might have similar issues).


    - ask
  • Steffen Mueller at Aug 26, 2009 at 6:59 am
    Hi Ask,

    Ask Bjørn Hansen wrote:
    On Aug 26, 2009, at 10:27, David Golden wrote:

    I still like the ABANDONED author idea though -- no work required!
    Do you move the distribution files to the A/AB/ABANDONED/ directory
    then? If so, that's work and it'll pollute backpan with duplicates (and
    require updating of indexes; breaks the previous "stable URLs" and so
    on). (Not moving them might have similar issues).
    No need to move them. We can simply figure out whether they're abandoned
    by looking at the "peek perms" page.

    Still, given that someone would implement it, I think an "orphan this
    module" button on PAUSE would be the best solution.

    Cheers,
    Steffen
  • David Golden at Aug 26, 2009 at 10:53 am

    On Wed, Aug 26, 2009 at 2:59 AM, Steffen Muellerwrote:
    Do you move the distribution files to the A/AB/ABANDONED/ directory then?
    If so, that's work and it'll pollute backpan with duplicates (and require
    updating of indexes; breaks the previous "stable URLs" and so on).    (Not
    moving them might have similar issues).
    No need to move them. We can simply figure out whether they're abandoned by
    looking at the "peek perms" page.
    That was my thought. Nothing moves, nothing changes in the index,
    just the namespace ownership permissions change. Even 'co-maint' to
    ABANDONED would be sufficient.
    Still, given that someone would implement it, I think an "orphan this
    module" button on PAUSE would be the best solution.
    I was thinking to use one of the transfer buttons already here:

    https://pause.perl.org/pause/authenquery?ACTION=share_perms

    Of course, adding another dialog and button for "abandon" makes it
    really, really easy.

    -- David
  • Ask Bjørn Hansen at Aug 26, 2009 at 8:05 pm
    I realize this is in the "just a simple matter of programming"
    category, but here's another suggestion anyway:

    At work - http://www.yellowbot.com/ and others - we've had great
    success with using triple-tags/machine tags in our system
    (<namespace>:<predicate>:<value>).

    Some namespaces are reserved for particular uses (and with particular
    permissions), but other than that we end up being able to use it for
    all sorts of flags that otherwise would need their own column (or
    table) in the system. (We do a lot of moving data around the system
    in various ways, so extending the schema is a relative big hassle --
    not unlike the CPAN module ecosystem).

    Our APIs have methods for setting and getting specific tags and for
    getting all tag values in a particular namespace:predicate (and a few
    other variations).

    Anyway - in this case there'd be a pause:maintained:abandoned tag or
    some such. If we didn't already have the co-maintainer system, those
    could just be tags with authors as the values.


    - ask
  • Ask Bjørn Hansen at Aug 26, 2009 at 4:40 am
    (If it wasn't clear, I think using 'ABANDONED' as the "author" will be
    too messy).
  • Ricardo Signes at Aug 27, 2009 at 12:12 am
    * David Golden [2009-08-25T22:27:31]
    I still like the ABANDONED author idea though -- no work required!
    What does this option:

    2.2 Give up primary maintainership status (without transfering it)

    on https://pause.perl.org/pause/authenquery?ACTION=share_perms do?

    Seems like the "existing" way to do this.

    --
    rjbs

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupcpan-workers @
categoriesperl
postedAug 25, '09 at 12:48p
activeAug 27, '09 at 12:12a
posts13
users6
websitecpan.org

People

Translate

site design / logo © 2018 Grokbase