From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id E61726DE0F98 for ; Sun, 12 Jan 2020 05:42:49 -0800 (PST) Authentication-Results: arlo.cworth.org; dkim=pass (2048-bit key; unprotected) header.d=nikula-org.20150623.gappssmtp.com header.i=@nikula-org.20150623.gappssmtp.com header.b="zxOhwN8k"; dkim-atps=neutral X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.286 X-Spam-Level: X-Spam-Status: No, score=-0.286 tagged_above=-999 required=5 tests=[AWL=-0.285, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6XV-ohFJuBCw for ; Sun, 12 Jan 2020 05:42:48 -0800 (PST) Received: from mail-lj1-f194.google.com (mail-lj1-f194.google.com [209.85.208.194]) by arlo.cworth.org (Postfix) with ESMTPS id 5FA3A6DE0E8C for ; Sun, 12 Jan 2020 05:42:48 -0800 (PST) Received: by mail-lj1-f194.google.com with SMTP id a13so7059193ljm.10 for ; Sun, 12 Jan 2020 05:42:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nikula-org.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:in-reply-to:references:date:message-id :mime-version; bh=EPh5P/F9PABWKkUeSV/WImR2qAFRLem9ZBAG5mduIao=; b=zxOhwN8kVFG1kVWlK3lcqplBODQ+SEZxvsVrZVXIAW5Yo/sfb2By0L1LvPI5CwVsWt sF2U9nkIgI6MN6RoG7FukRqVeYI6p0pusjMDnmoUr9FZ+TMjOu5wgz6uCP3aerIV+mI+ VsPDgwQgwiOtpPt0Z1IlN9kiztv8tz5BAy4UVDRquxR3mTZYOGpPgD3nAx35oMsFLA8Q 7hyg7BxJybyDqCcYl6puttwkZb6tGPwLuVaxMTSC05ZGD1KT+QVh+B7vxjDuw6pOWXhE HdzL0pLN/u/Apzm/YDjB7Ti1uPUgcG0FkJ8VSXFnVco4MyY56efHdgFdT8YMUr+u7O4/ G1uA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version; bh=EPh5P/F9PABWKkUeSV/WImR2qAFRLem9ZBAG5mduIao=; b=VwrQtLvkpxU2oyXKGzcg4T5EOtoadzfBCnMykBCWS/wbk1M3G78A8No2rWdOeswGpV c6LN5+GlgGwIUeHYlgzObwlJjxGtt6ULwXGV2Z5uJM+JcJqeB3SlXSYBEHt9e4wzmVlj zTBcK581uxfwmKYkEeLrY0m/Zy9ZSJwm/x0/yIXnoWVowVu2vdLgRFJaYPl9iPrpdSaF dryR8Icgaq/yGeBOit4GuKHopanML8Z5akqMd02q1LBOf+29uRS6OwmFdTVrnhWlH+/M xgJzXJpFCugugnk0s2nEy9ylE1uSNgSIYFexhLXM91iY7l9K0wmWYeKocdzG2vwYyWGz PhzA== X-Gm-Message-State: APjAAAXbF5WtI0Q4qThKAleNF39r00SQ3m9+2WfnwAQNJyQcZu6ekY2B 3DaD5oU/uGccKJIXZOOqqQzaOliQu4jZ8Q== X-Google-Smtp-Source: APXvYqy2U9i2/hJm8Lcwm7XnDipl2YxMegUUDhDd1rU0BCYNpAPAPxDIJY5z3f1J1sYaX9u+Tbnn9Q== X-Received: by 2002:a2e:9708:: with SMTP id r8mr8201122lji.92.1578836565482; Sun, 12 Jan 2020 05:42:45 -0800 (PST) Received: from localhost (176-93-198-40.bb.dnainternet.fi. [176.93.198.40]) by smtp.gmail.com with ESMTPSA id x21sm4249940ljd.2.2020.01.12.05.42.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Jan 2020 05:42:44 -0800 (PST) From: Jani Nikula To: David Bremner , notmuch@notmuchmail.org Subject: Re: [RFC PATCH] build: add meson build system In-Reply-To: <87r2043lzc.fsf@tethera.net> References: <20200111164049.8237-1-jani@nikula.org> <87r2043lzc.fsf@tethera.net> Date: Sun, 12 Jan 2020 15:42:39 +0200 Message-ID: <87ftgkiyeo.fsf@nikula.org> MIME-Version: 1.0 Content-Type: text/plain X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 12 Jan 2020 13:42:50 -0000 On Sun, 12 Jan 2020, David Bremner wrote: > Jani Nikula writes: > >> This is a draft patch adding basic configure, build and test support >> for the binaries. Everything else is left out for now. It would be a >> considerable amount of work to convert everything, and I don't expect >> it to be possible in one go anyway. If there's interest in adding >> meson support, it would have to happen gradually, side-by-side with >> the current system, with a reasonably long transition period. But >> there's no point in going beyond the patch at hand if folks decide the >> focus should remain on the current system. > > Personally I think the idea is worth pursuing, but I admit I don't have > much experience with meson/ninja. How much churn can we expect from > meson changes? It seems there is something like one meson point release > per month. I build projects with meson regularly, but I don't develop the build files on a regular basis. So take this with a grain of salt. But I think overall the experience has been pleasant. They do keep adding features all the time, but AFAIK the version currently in e.g. Debian stable is usable, and the new features don't break existing stuff. If you want to hold back to an older version, you might have to put more effort to things that are easier in newer versions - but the solution should work in all versions. Any churn would be caused by taking advantage of the new features. > Are the tests supposed to be working fully in this version? When I run > > % meson && cd build && ninja && ninja test > > I get failures in T010, T351, T356, T357, T391, T395, and T710. At a > glance it looks like mainly out-of-tree related problems to finding > e.g. json_check_nodes.py and message-id-parse. It also looks like a few > variables like TEST_RUBY and NOTMUCH_HAVE_PYTHON3_CFFI are not being > set. I get those failures too, as I haven't bothered with debugging in more detail yet. I just brought this to a point that mostly works. If we decide we can start merging meson support, it's going to be experimental and not fully featured initially. I think we'd have to decide what's "good enough". Obviously I think the tests must all pass, either by fixing the issues or gracefully disabling features. For example, I don't currently build any of notmuch-emacs or documentation - they will require custom build rules, while all the C and C++ work out of the box. I think mostly meson support can be added in parallel to the existing system. Some things might have to be fixed for both, e.g. meson only works with out-of-tree builds. The annoying part will be the transition period, where you have to maintain both. And if we decide we'll want both ad infinitum, it'll be an annoyance ad infinitum... ;) BR, Jani.