<!-- 
RSS generated by JIRA (8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b) at Sat Feb 10 15:48:15 JST 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>PFS-JIRA</title>
    <link>https://pfspipe.ipmu.jp/jira</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>8.3.4</version>
        <build-number>803005</build-number>
        <build-date>13-09-2019</build-date>
    </build-info>


<item>
            <title>[PIPE2D-83] Use Travis-CI as a regression test</title>
                <link>https://pfspipe.ipmu.jp/jira/browse/PIPE2D-83</link>
                <project id="10002" key="PIPE2D">DRP 2-D Pipeline</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=rhl&quot; class=&quot;user-hover&quot; rel=&quot;rhl&quot;&gt;rhl&lt;/a&gt; has scripted up the instructions from &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/INFRA-36&quot; title=&quot;Write quick-start guide for Stella&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRA-36&quot;&gt;&lt;del&gt;INFRA-36&lt;/del&gt;&lt;/a&gt;. We should have a Travis (or other CI) job that runs this script on every push and demonstrates that they have not been broken.&lt;/p&gt;

&lt;p&gt;NB we&apos;re just checking execution here, not for the validity of the output.&lt;/p&gt;</description>
                <environment></environment>
        <key id="11153">PIPE2D-83</key>
            <summary>Use Travis-CI as a regression test</summary>
                <type id="1" iconUrl="https://pfspipe.ipmu.jp/jira/secure/viewavatar?size=xsmall&amp;avatarId=10503&amp;avatarType=issuetype">Bug</type>
                                            <priority id="3" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/priorities/major.svg">Major</priority>
                        <status id="10002" iconUrl="https://pfspipe.ipmu.jp/jira/images/icons/statuses/generic.png" description="The issue is resolved, reviewed, and merged">Done</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Done</resolution>
                                        <assignee username="price">price</assignee>
                                    <reporter username="swinbank">swinbank</reporter>
                        <labels>
                    </labels>
                <created>Mon, 19 Sep 2016 18:44:06 +0000</created>
                <updated>Thu, 1 Dec 2016 03:18:34 +0000</updated>
                            <resolved>Thu, 1 Dec 2016 03:09:34 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>1</watches>
                                                                <comments>
                            <comment id="11629" author="price" created="Mon, 28 Nov 2016 19:49:57 +0000"  >&lt;p&gt;&lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=swinbank&quot; class=&quot;user-hover&quot; rel=&quot;swinbank&quot;&gt;swinbank&lt;/a&gt;, would you please review this?&lt;/p&gt;

&lt;p&gt;There are changes to all four packages (datamodel, obs_pfs, drp_stella_data and drp_stella), but these changes are all identical and consist solely of the machinery necessary to checkout and use the new pipe2d package under Travis.  The reason for this approach is so that we can do more of an integration test (testing that all packages work together and the tutorial isn&apos;t broken) rather than just unit testing (testing that a single package works).  The down side is that if there are changes in multiple packages, what is essentially the same test will fire multiple times (one for each package); I don&apos;t know how to get around that, and I hope that it won&apos;t be a problem because we have a small number of packages.  To further reduce the load on Travis, I have push testing disabled, and only trigger testing on pull requests.  Travis limits the log file to 4 MB so I have to trap the regular output in the course of the build and only display the last 100 lines of that output when done.  This means there isn&apos;t a clear indicator of build progress, but in my experience each test takes around 30 minutes; most of this appears to be build time (I&apos;m hoping we can reduce it by simplifying drp_stella).&lt;/p&gt;

&lt;p&gt;The pipe2d package is in the process of being moved (&lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/INFRA-87&quot; title=&quot;Create pipe2d repo&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRA-87&quot;&gt;&lt;del&gt;INFRA-87&lt;/del&gt;&lt;/a&gt;) from my personal GitHub (&lt;a href=&quot;https://github.com/PaulPrice/pipe2d&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://github.com/PaulPrice/pipe2d&lt;/a&gt;) to the Subaru-PFS organisation on GitHub, and possibly renamed at the same time.  It contains scripts to build the pipeline and run the tutorial, plus the stuff needed to integrate with Travis-CI.  It is the authoritative source for the machinery in the other packages which grab pipe2d to run the build.  The &lt;tt&gt;install_pfs.sh&lt;/tt&gt; script can be used to build the pipeline on your own system, e.g., &lt;tt&gt;/path/to/pipe2d/install_pfs.sh /path/to/install/pfs&lt;/tt&gt; .  Once that&apos;s completed, you can load the environment by sourcing &lt;tt&gt;/path/to/install/pfs/pfs_setups.sh&lt;/tt&gt; .&lt;/p&gt;</comment>
                            <comment id="11631" author="swinbank" created="Tue, 29 Nov 2016 03:19:33 +0000"  >&lt;p&gt;Comments on &lt;a href=&quot;https://github.com/PaulPrice/pipe2d/pull/1&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;PaulPrice/pipe2d PR#1&lt;/a&gt;. I don&apos;t think further comments on the other repositories are necessary.&lt;/p&gt;

&lt;p&gt;Most of my comments on the implementation are minor. However, either I&apos;ve misunderstood something (quite possible!) or you aren&apos;t setting up the relevant branch to be tested properly: I reckon you need to add a &lt;tt&gt;$BRANCH false&lt;/tt&gt; to line 184 of &lt;tt&gt;bin/install_pfs.sh&lt;/tt&gt;.&lt;/p&gt;

&lt;p&gt;Beyond that, my main concern is regarding how to actually use this in practice. I think I&apos;m right in saying that it&apos;ll trigger on every PR. Does it follow that if I make a ticket branch in drp_stella, PR it, then push a corresponding branch to obs_pfs, the drp_stella test will run without the obs_pfs branch? If so, I don&apos;t think that&apos;s a disaster, but I do think it needs documentation and procedure. Building on that, it&apos;d be helpful to add a note to &lt;a href=&quot;http://pfs-2d-pipeline.readthedocs.io&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://pfs-2d-pipeline.readthedocs.io&lt;/a&gt; describing:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;How to use this system (e.g. only make PRs after the ticket branch has been pushed to all repositories, etc);&lt;/li&gt;
	&lt;li&gt;How to update this system (what happens when LSST release 13 is out? Or when we need to update to a different version of a pinned package? You&apos;ve built all the machinery for doing that, but a concise guide on which buttons to press would be useful.)&lt;/li&gt;
	&lt;li&gt;Policies for use (e.g. do we now expect that PRs can only be merged following a successful CI run? If so, let&apos;s note it on &lt;a href=&quot;http://pfs-2d-pipeline.readthedocs.io/en/latest/dev/best_practice.html&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://pfs-2d-pipeline.readthedocs.io/en/latest/dev/best_practice.html&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;You may be reluctant to define policy yourself (although I don&apos;t think you need be; I doubt anybody would really disagree): if you prefer open a ticket assigned to &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=rhl&quot; class=&quot;user-hover&quot; rel=&quot;rhl&quot;&gt;rhl&lt;/a&gt; or me to update the rules once the machinery is in place.&lt;/p&gt;</comment>
                            <comment id="11632" author="price" created="Tue, 29 Nov 2016 16:58:03 +0000"  >&lt;p&gt;Some responses:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;I wanted to point out that testing python 3.5 and OSX is possible, but I didn&apos;t want to actually put the effort into it until it&apos;s determined that it will be useful and it&apos;s a good use of time to work on it.  I&apos;ve yanked the commented-out lines.&lt;/li&gt;
	&lt;li&gt;The &lt;tt&gt;required&lt;/tt&gt; argument to the &lt;tt&gt;git_clone&lt;/tt&gt; function is useful and necessary because we want to be able to request a branch and yet not fail if it doesn&apos;t exist for this particular product.  This may occur if I&apos;m testing a ticket branch of one product, but there&apos;s no corresponding ticket branch for another product.  Oh, I think you figured this out.&lt;/li&gt;
	&lt;li&gt;Whoops on &lt;tt&gt;$BRANCH&lt;/tt&gt; &amp;#8212; I&apos;ve used it where it should be used.&lt;/li&gt;
	&lt;li&gt;You correctly observed that both &lt;tt&gt;install_pfs.sh&lt;/tt&gt; and the Travis driver are deleting the PFS-specific packages.  That&apos;s because they have different goals and may be used in different circumstances.  The installation script wants to clobber existing PFS packages &lt;em&gt;before&lt;/em&gt; the build, and it may be used outside Travis.  The Travis driver wants to delete existing PFS packages &lt;em&gt;after&lt;/em&gt; the build so we don&apos;t unnecessarily cache something we&apos;re just going to delete anyway.&lt;/li&gt;
	&lt;li&gt;I think we could deploy the log file as part of the Travis procedure. We might also want to deploy the generated docs and maybe a Conda build (I think &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=cloomis&quot; class=&quot;user-hover&quot; rel=&quot;cloomis&quot;&gt;cloomis&lt;/a&gt; is setting up a Conda server). But that&apos;s going to take some extra work (e.g., mucking around with authentication), so I&apos;d like to put it off as an upgrade option and get what&apos;s useful into play now if you don&apos;t mind?  Filed &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/PIPE2D-131&quot; title=&quot;Deploy Travis products&quot; class=&quot;issue-link&quot; data-issue-key=&quot;PIPE2D-131&quot;&gt;&lt;del&gt;PIPE2D-131&lt;/del&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I&apos;ve made a bunch of updates based on your comments that should appear on the PR soon.&lt;/p&gt;

&lt;p&gt;I&apos;ll update the docs.&lt;/p&gt;</comment>
                            <comment id="11633" author="price" created="Wed, 30 Nov 2016 00:07:25 +0000"  >&lt;p&gt;I&apos;ve updated the docs in drp_stella.  Would you have a look please, &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=swinbank&quot; class=&quot;user-hover&quot; rel=&quot;swinbank&quot;&gt;swinbank&lt;/a&gt;?&lt;/p&gt;

&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
price@price-laptop:~/PFS/drp_stella (tickets/PIPE2D-83=) $ git sub
commit b047328e86127f1349dd2e69bd5d308ecfd56e03
Author: Paul Price &amp;lt;price@astro.princeton.edu&amp;gt;
Date:   Wed Nov 23 22:34:59 2016 -0500

    gitignore: remove personal files
    
    A repo .gitignore should contain only files that might appear
    in the repo in the ordinary course of building or using the
    &lt;span class=&quot;code-keyword&quot;&gt;package&lt;/span&gt;.
    
    Files that are created because of individual user&apos;s workflows
    should be ignored through ~/.gitignore .

 .gitignore | 54 ------------------------------------------------------
 1 file changed, 54 deletions(-)

commit d552734948bb445ce6d644c13507b8f8fa3f21f0
Author: Paul Price &amp;lt;price@astro.princeton.edu&amp;gt;
Date:   Wed Nov 23 22:44:07 2016 -0500

    Enable Travis-CI

 .travis.yml | 28 ++++++++++++++++++++++++++++
 travis.sh   | 25 +++++++++++++++++++++++++
 2 files changed, 53 insertions(+)

commit ad3d23efeff5d2161265dac61c2ff1ab3478c5e1
Author: Paul Price &amp;lt;price@astro.princeton.edu&amp;gt;
Date:   Tue Nov 29 16:18:35 2016 -0500

    update docs to include pipe2d
    
    We now have a script-based install and Travis.
    
    [ci skip]

 sphinx/dev/best_practice.rst     | 83 +++++++++++++++++++++++++++++++++++++++-
 sphinx/index.rst                 | 16 ++++++--
 sphinx/maintainer/maintainer.rst | 47 +++++++++++++++++++++++
 sphinx/user/getting_started.rst  | 65 +++++++++++++++++++++++++++++--
 4 files changed, 203 insertions(+), 8 deletions(-)

commit 53ebfe09dd662a4a233a5e298468463016e2ae91
Author: Paul Price &amp;lt;price@astro.princeton.edu&amp;gt;
Date:   Tue Nov 29 18:56:46 2016 -0500

    gitignore: add Sphinx-generated dir

 .gitignore | 1 +
 1 file changed, 1 insertion(+)
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="11634" author="price" created="Wed, 30 Nov 2016 00:28:47 +0000"  >&lt;p&gt;Note to self: I need to upgrade the &lt;tt&gt;.travis.yml&lt;/tt&gt; files in the various subordinate packages.... Done!&lt;/p&gt;</comment>
                            <comment id="11640" author="swinbank" created="Wed, 30 Nov 2016 21:38:31 +0000"  >&lt;p&gt;Updated docs look great! I added a few picky comments on the PR. A couple of broken links which obviously need fixing, but also some fussing about stylistic issues in the markup which you may ignore if you wish.&lt;/p&gt;

&lt;p&gt;I still think it&apos;s a little sad that it&apos;ll be easy to trigger Travis failures by PRing before you&apos;ve pushed ticket branches to all the relevant repos, but I can&apos;t see a way around this, and I appreciate that you have documented it.&lt;/p&gt;

&lt;p&gt;Other than that, this is very nice. Thank you, and go ahead and merge when you&apos;re ready.&lt;/p&gt;</comment>
                            <comment id="11644" author="price" created="Thu, 1 Dec 2016 00:25:39 +0000"  >&lt;p&gt;Thanks &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/secure/ViewProfile.jspa?name=swinbank&quot; class=&quot;user-hover&quot; rel=&quot;swinbank&quot;&gt;swinbank&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;I updated the docs following your comments.&lt;/p&gt;

&lt;p&gt;I agree about the requirement to push before PRing being a bit annoying.  An alternative would be to require the developer to explicitly trigger a Travis run when ready (e.g., by creating a PR on the pfs_pipe2d repo with an empty commit or something; or have some script use the Travis API), but I think what I&apos;ve done is preferable because those failures are visible and easily remedied, while explicit triggers are easily forgotten or missed.&lt;/p&gt;

&lt;p&gt;I&apos;m in the process of updating things to use the new pfs_pipe2d repo (instead of my personal pipe2d repo), then I hope to merge.&lt;/p&gt;</comment>
                            <comment id="11645" author="price" created="Thu, 1 Dec 2016 01:43:01 +0000"  >&lt;p&gt;I think this is good to go except for one thing: we&apos;re currently pointing the test to my personal GitHub version of obs_pfs because of concerns about disk space (&lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/INFRA-53&quot; title=&quot;Cleanup obs_pfs in git&quot; class=&quot;issue-link&quot; data-issue-key=&quot;INFRA-53&quot;&gt;&lt;del&gt;INFRA-53&lt;/del&gt;&lt;/a&gt;).  I think as soon as that&apos;s resolved, I can update pfs_pipe2d and merge.  I&apos;m concerned that merging as-is would generate confusion.&lt;/p&gt;</comment>
                            <comment id="11646" author="price" created="Thu, 1 Dec 2016 03:09:34 +0000"  >&lt;p&gt;Turns out it works without the reduced-size obs_pfs.&lt;/p&gt;

&lt;p&gt;Merged to master.  I&apos;m working on an e-mail to send around the group.&lt;/p&gt;</comment>
                            <comment id="11647" author="price" created="Thu, 1 Dec 2016 03:18:34 +0000"  >&lt;blockquote&gt;
&lt;p&gt;Dear PFS-ers,&lt;/p&gt;

&lt;p&gt;I have just merged &lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/PIPE2D-83&quot; title=&quot;Use Travis-CI as a regression test&quot; class=&quot;issue-link&quot; data-issue-key=&quot;PIPE2D-83&quot;&gt;&lt;del&gt;PIPE2D-83&lt;/del&gt;&lt;/a&gt;, which provides continuous integration (CI) through Travis.  This introduces a new repo, a couple of new scripts, a new procedure and a new section in the docs.&lt;/p&gt;

&lt;p&gt;The new repo is called pfs_pipe2d (&lt;a href=&quot;https://github.com/Subaru-PFS/pfs_pipe2d&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;https://github.com/Subaru-PFS/pfs_pipe2d&lt;/a&gt;).  It currently contains scripts to install and exercise the PFS pipeline; I believe RHL has ideas on other things that might go in there.&lt;/p&gt;

&lt;p&gt;The new scripts are in pfs_pipe2d:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;install_pfs.sh : you can use this to install the PFS pipeline, including conda, the LSST stack, and PFS packages.  It should be tolerant of an existing install so you don&apos;t have to blow away your old stack to build a new one.  It has some support for OSX, but I haven&apos;t tested that yet (&lt;a href=&quot;https://pfspipe.ipmu.jp/jira/browse/PIPE2D-132&quot; title=&quot;Make install_pfs.sh work on OSX&quot; class=&quot;issue-link&quot; data-issue-key=&quot;PIPE2D-132&quot;&gt;&lt;del&gt;PIPE2D-132&lt;/del&gt;&lt;/a&gt;).  As part of the build, it writes a file that you can source to setup your environment.  Documentation is at &lt;a href=&quot;http://pfs-2d-pipeline.readthedocs.io/en/latest/user/getting_started.html#script-based-install&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://pfs-2d-pipeline.readthedocs.io/en/latest/user/getting_started.html#script-based-install&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;pfs_integration_test.sh : you can use this to test the PFS pipeline.  Documentation is at &lt;a href=&quot;http://pfs-2d-pipeline.readthedocs.io/en/latest/dev/best_practice.html#command-line-use&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://pfs-2d-pipeline.readthedocs.io/en/latest/dev/best_practice.html#command-line-use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Now that CI is available, there are some things to keep in mind:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Travis-CI will fire when you create a pull request on GitHub (or push to an existing pull request).  The CI run takes about half an hour. Please don&apos;t merge until you get a green light.&lt;/li&gt;
	&lt;li&gt;If you are working on multiple packages in a single ticket, push the ticket branches to GitHub for all packages &lt;b&gt;before&lt;/b&gt; opening the pull requests.  This is because the CI is not just running the tests in the packages, but it&apos;s checking that the packages all work together, which they may not if all the work isn&apos;t available for the test.&lt;/li&gt;
	&lt;li&gt;If you don&apos;t want Travis-CI to fire, you can put &quot;&lt;span class=&quot;error&quot;&gt;&amp;#91;ci skip&amp;#93;&lt;/span&gt;&quot; in your commit message.&lt;/li&gt;
	&lt;li&gt;More details at &lt;a href=&quot;http://pfs-2d-pipeline.readthedocs.io/en/latest/dev/best_practice.html#travis-use&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://pfs-2d-pipeline.readthedocs.io/en/latest/dev/best_practice.html#travis-use&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;I added a section with &quot;Maintainer notes&quot; to the docs: &lt;a href=&quot;http://pfs-2d-pipeline.readthedocs.io/en/latest/maintainer/maintainer.html&quot; class=&quot;external-link&quot; rel=&quot;nofollow&quot;&gt;http://pfs-2d-pipeline.readthedocs.io/en/latest/maintainer/maintainer.html&lt;/a&gt; .  This includes details on how to update the build script when LSST puts out a new release.&lt;/p&gt;

&lt;p&gt;Let me know if you have any questions.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;/p&gt;

&lt;p&gt;Paul.&lt;/p&gt;&lt;/blockquote&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="11352">PIPE2D-131</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="11351">INFRA-87</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                <customfield id="customfield_10500" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10010" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|031vu7:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10100" key="com.atlassian.jira.plugin.system.customfieldtypes:userpicker">
                        <customfieldname>Reviewers</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>swinbank</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>