public inbox for cygwin-apps@cygwin.com
 help / color / mirror / Atom feed
From: Ken Brown <kbrown@cornell.edu>
To: cygwin-apps@cygwin.com
Subject: Re: [RFC] cygport pm for managing package releases
Date: Sat, 12 Sep 2020 11:03:47 -0400	[thread overview]
Message-ID: <748949da-68b5-03ae-aa87-9e03a5e70d1c@cornell.edu> (raw)
In-Reply-To: <928nlflgp1urt25075aq66j1r6f46spjsu@4ax.com>

On 9/11/2020 12:07 PM, Andrew Schulman via Cygwin-apps wrote:
> cygport has automated a lot of the work of building and maintaining
> packages for Cygwin. But one area where it doesn't help yet is in managing
> the available releases of a package. For me as the maintainer of a dozen or
> so packages, there are routine tasks that I still find to be painful:
> 
> * Finding out which versions of a package are currently available in the
> Cygwin repositories, and which if any are marked as "test".
> * Marking or unmarking a version as "test".
> * Removing versions from the repositories.
> * Marking a package as obsolete.
> 
> All of these are still manual tasks. Most require digging through
> documentation (though that's also much improved in the last few years),
> manually editing .hint files or creating dummy package files, and manually
> uploading files to the right places in sftp://cygwin.com. It's not fun, and
> so I don't keep up with it as well as I should.
> 
> To alleviate that, I think cygport should add a set of "pm" commands to
> automate package management. For example:
> 
> * cygport pm list - list versions available in the Cygwin repositories.
> * cygport pm test - set/clear "test" status for a version.
> * cygport pm del - remove a package version from the repositories.
> * cygport pm obsolete - mark a package as obsolete.
> 
> And probably others. I think this would make maintainer's lives easier, and
> make these management tasks more reliable.
> 
> I can spend some time planning and developing this, and if others want to
> collaborate on it, so much the better. But before I start on that, I want
> to get people's comments here about whether:
> 
> * It's worth doing;
> * (More to the point) It'd be likely to be accepted upstream, assuming the
> implementation is satisfactory; and
> * There may be problems in implementing it that I haven't thought of.
> 
> I can think of a few problems or objections:
> 
> 1. The "pm" commands will bake into cygport logic that's specific to how
> the package repositories and upset currently work. So if those change,
> cygport will have to change to match them. That's true, but not just for
> cygport pm - other parts of cygport, such as cygport up, are basically
> clients for upset. And at least it'll centralize the changes in one place,
> so maintainers won't have to worry about them.
> 
> 2. "pm list" will require finding and parsing an appropriate setup.ini
> file, unlike the other "pm" commands which will manipulate
> sftp://cygwin.com.
> 
> I think these are surmountable, but I want to know if there's a general
> agreement that it's worth doing.
> 
> BTW a successful example like this one is the "cygport up" command, which
> we added a few years ago to automate uploading packages to cygwin.com. I
> think it's working well.

Agreed.  Thanks for doing this.

Concerning your specific suggestions:

 > * cygport pm list - list versions available in the Cygwin repositories.

Good idea.  I often find myself looking at setup.ini to get this information, 
and it would be nice to have cygport automate the process.

 > * cygport pm test - set/clear "test" status for a version.

I like the idea of clearing test status, i.e., 'cygport pm untest'; this should 
be trivial to implement in view of Jon's recent work:

   https://cygwin.com/pipermail/cygwin-apps/2020-August/040440.html

But I'm not sure about going in the other direction.  Once users have already 
installed a non-test package, it could be very confusing to have that package 
retroactively declared to be a test release.

 > * cygport pm del - remove a package version from the repositories.

This would be very useful.  The current mechanism for removing a package version 
is very tedious.

 > * cygport pm obsolete - mark a package as obsolete.

I was about to question the need for this, but I'll bet you're thinking about 
unison2.48.  It will soon become obsolete, with two or more possible replacement 
packages.  So the usual mechanism of having a new package obsolete an old one 
doesn't quite work.

Ken

  parent reply	other threads:[~2020-09-12 15:03 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-11 16:07 Andrew Schulman
2020-09-11 23:07 ` Brian Inglis
2020-09-12 15:18   ` Andrew Schulman
2020-09-12 15:03 ` Ken Brown [this message]
2020-09-12 21:20   ` Brian Inglis
2020-09-12 22:14     ` Hamish McIntyre-Bhatty
2020-09-20 19:19 ` Jon Turney
2020-09-21 14:17   ` Ken Brown
2020-09-25 17:13   ` Andrew Schulman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=748949da-68b5-03ae-aa87-9e03a5e70d1c@cornell.edu \
    --to=kbrown@cornell.edu \
    --cc=cygwin-apps@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).