{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "chem-bla-ics",
  "description": "Chemblaics (pronounced chem-bla-ics) is the science that uses open science and computers to solve problems in chemistry, biochemistry and related fields.",
  "home_page_url": "https://chem-bla-ics.linkedchemistry.info/",
  "feed_url": "https://chem-bla-ics.linkedchemistry.info/2009/10/21/maintaining-patches-is-fixing-patches.json",
  "icon": "https://chem-bla-ics.linkedchemistry.info/assets/images/chem-bla-ics_logo.png",
  "language": "en",
  "authors": [
    {
      "name": "Egon Willighagen",
      "url": "https://orcid.org/0000-0001-7542-0286",
      "_orcid": "0000-0001-7542-0286"
    }
  ],
  "items": [

    {
      "id": "https://doi.org/10.59350/7862g-njh70",
      "url": "https://chem-bla-ics.linkedchemistry.info/2009/10/21/maintaining-patches-is-fixing-patches.html",
      "title": "Maintaining patches is fixing patches",
      "content_html": "<p>Today I had a question about having to fix patches against upstream changes because those patches were not included upstream yet is <em>not very productive</em>.</p>\n\n<p>However, it is a prominent part of maintaining a code base. In the past 9 year, I <em>and many others</em> have been reworking a lot of <a href=\"http://cdk.sf.net/\">CDK</a>\ncode because of API changes <strong>and</strong> bug fixes in deeper parts of the CDK library. At least half of the work I have done for the CDK is doing this kind of\nfixing of downstream code. This is <em>never</em> trivial, and it is never productive. Well, depends somewhat on your definition of productivity.</p>\n\n<p>Whether productive or not, it is just something that needs to happen. Additionally, it is <strong>not</strong> something you can prevent. I guess one can call this a\n<em>fact of life</em>. Doesn’t make it nice work. Not at all. And most of my frustration with the CDK library is the lack of documentation and unit testing,\nwhich makes such fixing of downstream code hard. This means that the person best suited to do this job, is the one who wrote the patch in the first place.\nThe person who made the comment I mentioned earlier is seeing this from very up close now.</p>\n\n<h3 id=\"code-quality\">Code Quality</h3>\n\n<p>I very much understand his feeling of being unproductive when updating patches; been there, done that. He (that I can disclose) is absolutely right. With\nall the quality assurance functionality I have set up in the past for the CDK, nicely integrated in <a href=\"http://blog.rguha.net/\">Rajarshi</a>’s\n<a href=\"http://cdk.git.sourceforge.net/git/gitweb.cgi?p=cdk/nightly;a=summary\">Nightly</a> script, I hope to make it easier\nfor people to write proper maintainable patches. Often these reports are, however, again about doing tasks which make you feel unproductive. But I can\nassure you that writing such tools quality assurance tools, like the <a href=\"https://chem-bla-ics.linkedchemistry.info/2009/10/17/work-in-progress-open-doccheck.html\">OpenJavaDocCheck <i class=\"fa-solid fa-recycle fa-xs\"></i></a>\nI worked on this weekend, makes you feel even less productive.</p>\n\n<h3 id=\"redesign\">Redesign</h3>\n\n<p>Sometimes making a library better maintainable, includes reworking the design. Almost always this take serious effort, and potentially introduce new\nbugs. At the same time, it always fixes a lot of older bugs and at the same time, of redesigned properly, makes it much easier to fix other bugs and\nallow more functionality to be implemented.</p>\n\n<p>But again, this requires rewriting of downstream patches too. And the one doing the redesign will always get comments about this requiring to make\nunproductive code updates downstream. I have seen this on several occasions in the CDK, such as my rewrite of the atom typing functionality in the\nCDK. (And don’t get any KDE4 developer started on that topic ;) Another <em>fact of life</em>, I guess.</p>",
      "summary": "Today I had a question about having to fix patches against upstream changes because those patches were not included upstream yet is not very productive.",
      
      "date_published": "2009-10-21T00:00:00+00:00",
      "date_modified": "2026-05-05T00:00:00+00:00",
      
      
      
      
      
      
      
        "authors": [ { "name": "Egon Willighagen", "url": "https://orcid.org/0000-0001-7542-0286" } ]
      
    }

  ]
}
