From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-oln040092071058.outbound.protection.outlook.com [40.92.71.58]) by sourceware.org (Postfix) with ESMTPS id BD69B3857C62 for ; Sat, 12 Sep 2020 22:15:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org BD69B3857C62 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iSstXf0gDnIMhPRO7vZXY56Wnr3LL6lyOtCWf3rGjA/7NJQTslr0FySjQjA2EuUl4m2v3UWaGcg9HnkphSd8mGRrhQAs9nSLfatt8IVhQIjU3B5qSSNlyI4Zc9E0BpaSqSqRktK8OftxjgD+netzFqc3/hYPA08xVwU1YCegfuo2q0ZBsf0S26bTAKNmANiEVpCepGjsCzQoeMB40rQsRBH8+v76G5udDE1R+iV44riPqnrvc/0c8lE56VX615i44SkkpEFxjFGbZj+NaZFoF9hvaFvJLC0lJZLbNst2iPz3+Zk8fjYK8O7cidadG4ctJyomcZ5CMIlUGCsv4tAPtg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r5jOzvvW5Za2yzq/aVJ08T+fOfxnIQg4/o/oBXjDtbA=; b=DnoJL62/9/pe4C2ukxoBiOfzBVse8FXq1H/Zl9zQCpfrG1QJzRFNJdi4u3chSC/7ytB64vvEG9MXVEpmc4nvgxqV4T48cOv02VXxqE3QQePe5uJTX79yEIGN5YSbmzklUOVFLgGPg9UeyHOIF03V1aaUTDS722AOS58bhac+p0sLLAAi75n98H2M8KIElTfO1aiG2eYq4jM8j4UQsn+CtNUNeY15uqVcUZmUCpFNcHoWem+sPPqsWoi+vht6TGUSx5rINTnhS64/JGeI8RCX1faCsOC9FHHsdwMUlWF8JbvZoBu67Ge/02cABIcZIRz61sRoj80A9XDcoos4mWUV6w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from VE1EUR03FT038.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e09::47) by VE1EUR03HT070.eop-EUR03.prod.protection.outlook.com (2a01:111:e400:7e09::468) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16; Sat, 12 Sep 2020 22:15:01 +0000 Received: from DB7PR02MB3996.eurprd02.prod.outlook.com (2a01:111:e400:7e09::4d) by VE1EUR03FT038.mail.protection.outlook.com (2a01:111:e400:7e09::368) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend Transport; Sat, 12 Sep 2020 22:15:01 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:497B0208F51ED6AC33102D70E057030B250E8E2C4BDFA045DB8ADAA379C0444B; UpperCasedChecksum:F3ACAF1E28B088DE41DFAB79F09F982D13D5E9DDC63CB9462BB07C35F171CC7A; SizeAsReceived:6826; Count:46 Received: from DB7PR02MB3996.eurprd02.prod.outlook.com ([fe80::e850:4bb2:fc3b:2212]) by DB7PR02MB3996.eurprd02.prod.outlook.com ([fe80::e850:4bb2:fc3b:2212%7]) with mapi id 15.20.3370.018; Sat, 12 Sep 2020 22:15:01 +0000 Subject: Re: [RFC] cygport pm for managing package releases To: cygwin-apps@cygwin.com References: <928nlflgp1urt25075aq66j1r6f46spjsu@4ax.com> <748949da-68b5-03ae-aa87-9e03a5e70d1c@cornell.edu> From: Hamish McIntyre-Bhatty Autocrypt: addr=hamishmb@live.co.uk; keydata= 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 SgyH5sOHagLQDdneBm4EJIs0MeQOrTDb Message-ID: Date: Sat, 12 Sep 2020 23:14:59 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="8r5cp0cRG2XjDRhCNbwZZgCl2YNloRwsu" X-ClientProxiedBy: LO2P265CA0261.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:8a::33) To DB7PR02MB3996.eurprd02.prod.outlook.com (2603:10a6:10:43::18) X-Microsoft-Original-Message-ID: <61a6290d-1f8c-1f6a-4c4e-1840960318e1@live.co.uk> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.1.122] (109.156.57.229) by LO2P265CA0261.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:8a::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3370.16 via Frontend Transport; Sat, 12 Sep 2020 22:15:00 +0000 X-Microsoft-Original-Message-ID: <61a6290d-1f8c-1f6a-4c4e-1840960318e1@live.co.uk> X-TMN: [urmFxBetAMrEjskeC73HauyMtDYVxNf9] X-MS-PublicTrafficType: Email X-IncomingHeaderCount: 46 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-Correlation-Id: f1226f6f-4c84-488e-b96e-08d857694ad0 X-MS-TrafficTypeDiagnostic: VE1EUR03HT070: X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: C9nNpzlA7bwtEhuWLUT9gegEAbDC5d9j/ExnYmAM1rQOd0PCgTDKoGHA4G9YRwuWg64WskOiW/jHHu0Tf1EhFzKnh1d/AxTajk05odgFsgzG/SeTvz74lDCG4qA/nVtuAP6uM+o44vs66rhs0jbE8ZF5rj5zx3+MqmxxU++mIPRT6lUCZkDBwf7iA5RGtjWnxcDdmaW5idk7gpacjDEM/5SRg9NSuVae4DbJVW/z8p0= X-MS-Exchange-AntiSpam-MessageData: hjEwYK/dYRhAL0lPe6hTf+phZTsovIb4lb0wYEkc94AixVu7n2W0wjMIJqtVTCfigRz8GIUQlnbhlPyPGzMLgRwNdYpA3Uh6nHtb7m0ALYUsCYKsrQSgr3OO6qEpNjl43ZkU+AdImF1tgXGjoP70eA== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f1226f6f-4c84-488e-b96e-08d857694ad0 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2020 22:15:01.2549 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT038.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: Internet X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1EUR03HT070 X-Spam-Status: No, score=-3031.2 required=5.0 tests=BAYES_00, FORGED_MUA_MOZILLA, KAM_COUK, KAM_DMARC_STATUS, MSGID_FROM_MTA_HEADER, NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin-apps@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin package maintainer discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Sep 2020 22:15:05 -0000 --8r5cp0cRG2XjDRhCNbwZZgCl2YNloRwsu Content-Type: multipart/mixed; boundary="Mm0ZVWzY0Acm00HKCL2MCpO3hs0eHQo6G" --Mm0ZVWzY0Acm00HKCL2MCpO3hs0eHQo6G Content-Type: multipart/mixed; boundary="------------F53177FAE2827F19FC3C2CBD" Content-Language: en-US This is a multi-part message in MIME format. --------------F53177FAE2827F19FC3C2CBD Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 12/09/2020 22:20, Brian Inglis wrote: > On 2020-09-12 09:03, Ken Brown via Cygwin-apps wrote: >> 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 man= aging >>> the available releases of a package. For me as the maintainer of a do= zen 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 man= ually >>> uploading files to the right places in sftp://cygwin.com. It's not fu= n, 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 repositorie= s. >>> * 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 easie= r, and >>> make these management tasks more reliable. >>> >>> I can spend some time planning and developing this, and if others wan= t 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, assumin= g 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 basicall= y >>> clients for upset. And at least it'll centralize the changes in one p= lace, >>> so maintainers won't have to worry about them. >>> >>> 2. "pm list" will require finding and parsing an appropriate setup.in= i >>> 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 gener= al >>> agreement that it's worth doing. >>> >>> BTW a successful example like this one is the "cygport up" command, w= hich >>> we added a few years ago to automate uploading packages to cygwin.com= =2E I >>> think it's working well. >> Agreed.=C2=A0 Thanks for doing this. >> >> Concerning your specific suggestions: >> >>> * cygport pm list - list versions available in the Cygwin repositorie= s. >> Good idea.=C2=A0 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'; th= is should >> be trivial to implement in view of Jon's recent work: >> >> =C2=A0 https://cygwin.com/pipermail/cygwin-apps/2020-August/040440.htm= l >> >> But I'm not sure about going in the other direction.=C2=A0 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.=C2=A0 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 thinkin= g about >> unison2.48.=C2=A0 It will soon become obsolete, with two or more possi= ble replacement >> packages.=C2=A0 So the usual mechanism of having a new package obsolet= e an old one >> doesn't quite work. > Python 2/2.7 (308) packages also come to mind as being dropped at some = point in > the next year as there is no longer any support. > I would definitely find these features helpful so you have my vote on these additions for sure. Hamish --------------F53177FAE2827F19FC3C2CBD Content-Type: application/pgp-keys; name="0x87B761FE07F548D6.asc" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="0x87B761FE07F548D6.asc" -----BEGIN PGP PUBLIC KEY BLOCK----- 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 =3DyyBL -----END PGP PUBLIC KEY BLOCK----- --------------F53177FAE2827F19FC3C2CBD-- --Mm0ZVWzY0Acm00HKCL2MCpO3hs0eHQo6G-- --8r5cp0cRG2XjDRhCNbwZZgCl2YNloRwsu Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEyW7IVaVv58cBDxXdh7dh/gf1SNYFAl9dSGMACgkQh7dh/gf1 SNafdw/9FUxdPnawt/tysk5kB4+d606j8hVhhKg1k1aq0Ya6gqHMI53QN3wX5+hV KgNDduros5aUPvQXpa22IO0g38ktOc/ekKMIksGNK0sIYOBSNglWSyH9B8z6gVVN zxVUjfNRsnKMQMXSeIwTmmrAomv/7ItX2evRPvc6xjjA798ZP8Xdv69GXstFn39q pkhVI9C+UCkcSLWaDB1CTAPfQkqUCl4rHtrMpUJKMOxzTWtz7rIqntQWmiSLWXJB Vxpx6NVGurbZknknxDKWP/lrDHKnb7VWNbWk2Bw5CnTia47MUJXXsM7gQurWkWLG RG8a9TSCIHlzpde+CXNg7XjON7vin2/qKRAe5IeY+lC76wnLcEf44wJCp24QS4L5 DDyKcbZX/rYBQyyxlFJcSeY8vb037qAUGMoXvgE+CzA4RnogCgr1M9D6KfdGuNp4 4uJ8DBmPHoLHAhNZlKWFBHGQ+LjpGCBoWksWbeoZNVb+2FvyG3dBHtkFsi086r+1 ZC+5w/5j/FJEY/CyVMBBNqgYAi/bmcpKjt6s89cPniopcmypAWeCK0QLkh2wiHKp YRPTZbr+S42tPA4Z1yJB+JqGL5g1sE2NG1Zm0D189xcKwapcbIjFMXztAH8Aqf5b P8K1Bgn0I00BzekDOXSZdRwXWvJktGOrybQ5MLS75WUDhN3e6tE= =7f8Q -----END PGP SIGNATURE----- --8r5cp0cRG2XjDRhCNbwZZgCl2YNloRwsu--