qpid-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Qpid > Proton build system proposals
Date Tue, 22 Jan 2013 15:54:00 GMT
<html>
<head>
    <base href="https://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/2042/9/21/_/styles/combined.css?spaceKey=qpid&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background: white;" bgcolor="white" class="email-body">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
    <h2><a href="https://cwiki.apache.org/confluence/display/qpid/Proton+build+system+proposals">Proton
build system proposals</a></h2>
    <h4>Page  <b>added</b> by             <a href="https://cwiki.apache.org/confluence/display/~phil@philharveyonline.com">Phil
Harvey</a>
    </h4>
         <br/>
    <div class="notificationGreySide">
         <p>This page lists the proposals that have been discussed on the <a href="http://mail-archives.apache.org/mod_mbox/qpid-proton/201301.mbox/browser"
class="external-link" rel="nofollow">Proton mailing list</a> to meet the requirements
on <a href="/confluence/display/qpid/Proton+build+system+requirements" title="Proton build
system requirements">Proton build system requirements</a>.</p>

<h4><a name="Protonbuildsystemproposals-SVNexternals"></a>SVN externals</h4>
<p><b>Description</b>: use SVN's "svn:external" metadata to link from proton-c/bindings/java/
to proton-j/proton-api.</p>

<p><b>Issues</b>: </p>
<ul>
	<li>"To switch to a particular SVN revision, simple SVN commands are run"</li>
	<li>This process is error-prone when using SVN externals.</li>
</ul>


<h4><a name="Protonbuildsystemproposals-protonapiduplicatedunderprotonc"></a>proton-api
duplicated under proton-c</h4>
<p><b>Description</b>: a copy of proton-api would be checked in under proton-c,
making it possible to build a standalone checkout of proton-c. A script would be run at proton-c
build time to report an error if differences are found between the two copies.</p>

<p><b>Issues</b>:</p>
<ul>
	<li>"To change proton-api, all that is required is to edit a Java file"</li>
	<li>When changing the proton-api, a developer would need to remember to perform whatever
steps are necessary to bring the two copies in line with each other.</li>
</ul>


<h4><a name="Protonbuildsystemproposals-Makeprotonctreatprotonapiasanexternaldependency"></a>Make
proton-c treat proton-api as an external dependency</h4>
<p><b>Description</b>: if we follow this proposal, the source code of proton-api
will no longer be copied into proton-c. Instead, proton-c will treat proton-api as a build-time
dependency, as originally described in the <a href="http://mail-archives.apache.org/mod_mbox/qpid-proton/201301.mbox/browser"
class="external-link" rel="nofollow">Proton mailing list discusion</a>. Our build
system will </p>

<p><b>Issues</b>:</p>
<ul>
	<li>To meet the (potential) requirement that a tarball source release of proton-c can
be built by a user without an external dependency on proton-api, the release script would
have to copy proton-api into the tar file.
	<ul>
		<li>This release-time copying violates the requirement that the release tarball is
produced by a simple "svn export". When building the released tarball, the proton-c build
script would need to <em>build</em> the bundled proton-api source rather than
treating it as an external dependency.</li>
	</ul>
	</li>
	<li>Otherwise, the user would avoid this problem by either downloading the source tarball
for the whole proton project (possibly with an option to omit the proton-j implementation),
or would download the proton-api binary from a Maven repository.</li>
</ul>


<h4><a name="Protonbuildsystemproposals-AugmentingPythonsystemtestswithJavaJUnittests"></a>Augmenting
Python system tests with Java JUnit tests</h4>
<p>This proposal is not mutually exclusive with respect to the other ones but is worth
mentioning here.</p>

<p><b>Issues</b>:</p>
<ul>
	<li>Work is ongoing to augment the Python system tests with Java JUnit ones under the
same folder. Maven is used to run the full Python and Java suite. The Python tests can be
run manually if desired, i.e. without invoking Java or Maven.</li>
</ul>

    </div>
    <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="https://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>
       <a href="https://cwiki.apache.org/confluence/display/qpid/Proton+build+system+proposals">View
Online</a>
              |
       <a href="https://cwiki.apache.org/confluence/display/qpid/Proton+build+system+proposals?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
           </div>
</div>
</div>
</div>
</div>
</body>
</html>

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


Mime
View raw message