From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1RftJu-0002KD-JM for garchives@archives.gentoo.org; Wed, 28 Dec 2011 13:13:26 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 5792621C0A5; Wed, 28 Dec 2011 13:13:14 +0000 (UTC) Received: from mail-gx0-f181.google.com (mail-gx0-f181.google.com [209.85.161.181]) by pigeon.gentoo.org (Postfix) with ESMTP id 144E721C08B for ; Wed, 28 Dec 2011 13:12:37 +0000 (UTC) Received: by ggnr5 with SMTP id r5so9229926ggn.40 for ; Wed, 28 Dec 2011 05:12:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=exMQZo4cwg/xj9nBAluQp5QmQnykNaTJVfxM06+Qh9w=; b=oXaz6orpJX2tp1fQXFXeRFlst0o3nxQd/Sp72Kc33zWafXvwX4MET6JRcg4nBUaG3v 6Zlsb9hI5y10vGjk+c0gA8rATz3OdkrjEGI0KdpeSsDpdMynNU+5MwnzwWfBqSY8JlmP QAPSmzEBQfNi/8dN/XcuTvEnWN8RKqf3SzaZs= Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org MIME-Version: 1.0 Received: by 10.101.21.20 with SMTP id y20mr13241243ani.24.1325077957468; Wed, 28 Dec 2011 05:12:37 -0800 (PST) Received: by 10.236.75.200 with HTTP; Wed, 28 Dec 2011 05:12:37 -0800 (PST) Date: Wed, 28 Dec 2011 13:12:37 +0000 Message-ID: Subject: [gentoo-dev] Versioning of eclasses and possibly functions inside ebuilds From: Francesco Riosa To: gentoo-dev@lists.gentoo.org Content-Type: text/plain; charset=ISO-8859-1 X-Archives-Salt: 79b2f555-4ee7-426d-95a3-aff80ee96f10 X-Archives-Hash: 2ef0074f7c90ceb7c2538b459deecd72 Disclaimer: this is just one idea that come at lunch, and sharing (in a short pause before my demanding daughter request me) here to not forget in the next busy days. Seem to me that append a time slice to the function, in the name or as a parent function that call the underling function can solve most of the versioning/deprecation problems how could it work: 1) package manager record the time it start an emerge "transaction", and share it via the environment with ebuilds and eclasses. The time could be faked by an argument via command line too. 2) the bash functions which are "versioned" this way chose the right one 3) package manager save the build time in the binpkg and in /var/db for unmergin and other purposes notice, the time must be a fixed one, the one @ which emerge @world start or a provided one, not a varying one alas gettimeofday() pro of this approach (in random order) - new function can be tested in tree faking a future date, no overlays needed, no masks, users and PM can see future changes sooner - automatic versioning, expired functions can be kept in eclass or ebuild for any chosen time with little waste - joining date of build and time versioned eclasses can make debugging easyer - in case user encounter a bug which has not been spotted/reported prior to the function activation become easy to fake a past date as emerge date and leave the developers the time to fix properly - future changes are defined in code, where everyone can see them cons - require package manager changes - must be done resilient to developer errors like overlapping slices of time toughs? Francesco R.