<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ci on remixware.com</title>
    <link>https://remixware.com/tags/ci/</link>
    <description>Recent content in Ci on remixware.com</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 26 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://remixware.com/tags/ci/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Stop GPL Code at the Pull Request: A Licence Check in CI</title>
      <link>https://remixware.com/stop-gpl-code-at-the-pull-request-a-licence-check-in-ci/</link>
      <pubDate>Mon, 26 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://remixware.com/stop-gpl-code-at-the-pull-request-a-licence-check-in-ci/</guid>
      <description>&lt;p&gt;The cheapest moment to deal with copied code is before it merges. Once it ships, a GPL function in a closed product means a release to pull back and a rewrite under pressure. In a pull request it means a red build and a few lines to replace.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;remixware check&lt;/code&gt; is made for that moment. It scans the project, applies your policy, prints what breaks it, and exits with status 1, so the build stops. When nothing breaks the policy it prints PASS and exits with 0. A check that couldn&amp;rsquo;t do its job exits with 2 instead of passing: a file it can&amp;rsquo;t read, or a folder with no source files to scan, which usually means a wrong path or an &lt;code&gt;--exclude&lt;/code&gt; that covers everything.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
