From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.1 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, FORGED_GMAIL_RCVD,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id E95741F461 for ; Wed, 15 May 2019 15:07:07 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id 5AD6A120A43; Thu, 16 May 2019 00:07:02 +0900 (JST) Received: from o1678948x4.outbound-mail.sendgrid.net (o1678948x4.outbound-mail.sendgrid.net [167.89.48.4]) by neon.ruby-lang.org (Postfix) with ESMTPS id 364421208BF for ; Thu, 16 May 2019 00:06:59 +0900 (JST) Received: by filter0186p3mdw1.sendgrid.net with SMTP id filter0186p3mdw1-30082-5CDC2B13-35 2019-05-15 15:06:59.789215196 +0000 UTC m=+162216.650592731 Received: from herokuapp.com (unknown [34.228.185.226]) by ismtpd0016p1iad2.sendgrid.net (SG) with ESMTP id Qh6twZBxTAGpdPHaUnnedg for ; Wed, 15 May 2019 15:06:59.731 +0000 (UTC) Date: Wed, 15 May 2019 15:06:59 +0000 (UTC) From: Greg.mpls@gmail.com Message-ID: References: Mime-Version: 1.0 X-Redmine-MailingListIntegration-Message-Ids: 68146 X-Redmine-Project: ruby-trunk X-Redmine-Issue-Id: 15851 X-Redmine-Issue-Author: MSP-Greg X-Redmine-Sender: MSP-Greg X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-SG-EID: =?us-ascii?Q?M4W5dkI32Qt1AHWPzmUKqncwpr1RYzW=2Fh5io+QGCFbqza4SgoT7mNsyFlgbRV4?= =?us-ascii?Q?KebugEqS110R8ndJyLH3IkwTiYKNmVsiNUKIo07?= =?us-ascii?Q?xhUCG5V6jess1iXXz004V=2FK8SG1XJPwPV0Aar4J?= =?us-ascii?Q?ZziyaZ3WMf9izhTIS40Ccy0UUpCUzRZ3plVXFFv?= =?us-ascii?Q?6vwkVz0zFJDXJja39ADo5ThrXKXjGYDAv4A=3D=3D?= To: ruby-core@ruby-lang.org X-ML-Name: ruby-core X-Mail-Count: 92663 Subject: [ruby-core:92663] [Ruby trunk Misc#15851] stdlib extension gems - building/testing on Windows X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: Ruby developers List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" Issue #15851 has been reported by MSP-Greg (Greg L). ---------------------------------------- Misc #15851: stdlib extension gems - building/testing on Windows https://bugs.ruby-lang.org/issues/15851 * Author: MSP-Greg (Greg L) * Status: Open * Priority: Normal * Assignee: ---------------------------------------- Along with maintaining ruby-loco, I've encouraged and helped a few popular extension gems with building/testing on Windows/Appveyor. I decided that a PowerShell based system to compile, build the gem, followed by gem install & test was the best option. It's on Appveyor as a 7z file, and three files in the gem/repo are needed to run it. For example output, see https://ci.appveyor.com/project/puma/puma/builds/24337063 A few things I addressed with it: 1. Updates the MSYS2 build system, which can get rather outdated on Appveyor. 2. Handles loading the correct version of OpenSSL back to Ruby 2.0. 3. Installs packages in either the old MSYS build system or MSYS2. 4. Can install and use ragel. 5. Parses test results from Minitest, Rspec, & test-unit. Since #1 is expensive, the system builds a standard pre-compiled gem file usable with all Ruby versions under test (test files are included in the gem). It then installs the gem in each Ruby version, and runs the tests using a custom rake file. Hence, one build job handles multiple Ruby versions. This also may speed up Appveyor CI times. The code is here: https://github.com/MSP-Greg/av-gem-build-test Since the Ruby organization has a number of extension gems/repos, script like this would make things much simpler for Windows CI. I've build several extension gems with it, and I think it's stable. Hence, might this be of interest? -- https://bugs.ruby-lang.org/