<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Really nice!</p>
    <p><br>
    </p>
    <br>
    <div class="moz-cite-prefix">Le 20/5/16 à 19:28, Eliot Miranda a
      écrit :<br>
    </div>
    <blockquote
cite="mid:CAC20JE13UWAHGFEfZf9j+LQsvTVkRrGYk9Og+nu1FZ26j0qa7g@mail.gmail.com"
      type="cite">
      <pre wrap=""> </pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <div dir="ltr">Hi All,
        <div><br>
        </div>
        <div>    here are the minutes of, and action items arising from,
          the meeting on Wednesday 18th of May to discuss moving the Cog
          svn repository to Github.  Please read if you're interested
          and discuss on vm-dev.  The major decision for the community
          to participate in is when to make the change, which we hope
          will happen in the next few weeks.  Thanks to all who attended
          the meeting and to all who have helped in making this a
          reality.  This is exciting!</div>
        <div><br>
        </div>
        <div><span
            id="docs-internal-guid-43a883f7-cf28-3887-8d14-c37dc4adcbbf">
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:3pt"><span style="font-size:34.666666666666664px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">VM Move to Github Meeting Notes</span></p>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">The name of the organisation and repository was agreed to be, and has been created as</span></p>
            <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-indent:36pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Organisation name: OpenSmalltalk</span></p>
            <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-indent:36pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Repository name: vm</span></p>
            <p dir="ltr"
style="line-height:1.38;margin-top:0pt;margin-bottom:0pt;text-indent:36pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">URL: <a moz-do-not-send="true" href="http://github.com/OpenSmalltalk/vm">github.com/OpenSmalltalk/vm</a></span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Administration duties:</span></p>
            <ul style="margin-top:0pt;margin-bottom:0pt">
              <li dir="ltr"
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline">
                <p dir="ltr"
                  style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Tim Felgentreff</span><span style="white-space:pre-wrap;font-size:14.666666666666666px;background-color:transparent">, David Lewis</span><span style="font-size:14.666666666666666px;white-space:pre-wrap;background-color:transparent">, Esteban Lorenzano, </span><span style="white-space:pre-wrap;font-size:14.666666666666666px;background-color:transparent">Eliot Miranda</span></p>
              </li>
            </ul>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">We decided to have everyone who currently has access to SVN also get write access to the new repository.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">There will be a master branch that is stable and from which releases are made using tags. Only administrators integrate into that branch. Ongoing development will be on a “dev” branch. This should also be kept stable for collaboration purposes, but breakage can happen occasionally. Contributors working on larger changes will do so on separate branches to avoid conflicts/breaking other people’s code.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Every commit will be tested by Travis (and Appveyor for Windows). Builds and tests will be run for Windows, Linux, and OS X, both on 32-bit, 64-bit, and ARM (as applicable). The master will only ever be merged with green commits. The dev branch should be green, and if something breaks, but the committer has no access or no time to fix it, we agreed that any administrator may roll back the breaking change using git revert. This way, the breaking change is preserved in the history, but the current HEAD is green. We will also disable “force-pushing” to the repository to ensure that no commit history can be tampered with.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">In case of any disagreements about reverting other people’s code, we declared Eliot (*) to be the arbiter.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Release tags on the master will trigger Travis to build release artifacts, including debian packages.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">To have incremental monotonic, human-readable version identifiers, we decided to use timestamps in the form YYYYMMDDHHmm in UTC. In order to ensure these timestamps are included in the sources, we will have a commit script in the repository that any contributor must use to update the dev and master branches (**). The checkout command for any version then becomes “git checkout branch@{timestamp}”.  Both the built VMs via a -version flag, and sources via a header file, will be marked with these timestamps.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">It was decided to leave the build system as-is using GNU Makefiles where available with a commitment to move to GNU Makefiles on Linux. We will use CMake to produce per-platform config files that identify platform facilities (such as epoll(2) vs kqueue(2) vs poll(s) vs select(3)).</span></p>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">We discussed ethics, which derive from the “if you break it, you fix it” philosophy and distilled it into the “administrators may revert” policy above.  We don’t want to prevent breakages, nor make people afraid of breaking things.  We merely want to prevent other people being affected by breakages, especially those that may be operating under production or time constraints.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">We will integrate the Github commit notifications with a Codespeed instance that will test commits for performance regressions.</span></p>
            <br>
            <p dir="ltr"
              style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:700;vertical-align:baseline;white-space:pre-wrap">Action Items</span></p>
            <br>
            <ul style="margin-top:0pt;margin-bottom:0pt">
              <li
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline">
                <p
                  style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Write the commit script</span></p>
              </li>
              <li
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline">
                <p
                  style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Set a date for the move (sooner rather than later)</span></p>
              </li>
              <li
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline">
                <p
                  style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Move the repository</span></p>
              </li>
              <li
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline">
                <p
                  style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Enable automatic builds for all the platforms</span></p>
              </li>
              <li
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline">
                <p
                  style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Write GNU makefiles for unix/linux</span></p>
              </li>
              <li
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Make WebHooks for Commit Notifications available to anyone who wants them.</span></li>
              <li
style="list-style-type:disc;font-size:14.666666666666666px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline"><span style="font-size:14.666666666666666px;background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Write CMake code to generate per-platform headers (***)</span></li>
            </ul>
          </span>
          <div class="gmail_signature">
            <div dir="ltr">
              <div><span
                  style="font-size:small;border-collapse:separate">
                  <div><br>
                  </div>
                  <div><br>
                  </div>
                  <div>_,,,^..^,,,_<br>
                  </div>
                  <div>best, Eliot</div>
                  <div><br>
                  </div>
                  <div>(*) under protest</div>
                  <div>(**) use whatever versioning you want on your own
                    versions, but the versions in <span style="color:rgb(0,0,0);font-family:Arial;font-size:15px;text-indent:48px;white-space:pre-wrap">OpenSmalltalk/vm will use this convention exclusively</span></div>
                  <div>(***) which will /not/ be called "config.h", but
                    e.g. "ostvmConfig.h", so as to avoid conflicts with
                    other packages using autoconf and CMake</div>
                </span></div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>