<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 15.04.2013, at 02:32, Albert Vonpupp &lt;<a href="mailto:vonpupp@gmail.com">vonpupp@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><div><div><div>Hello,<br><br>This is my first post and I'm not sure if Metacello should go on the beginners list or if it's fine here, or if it's not even considered as part of Squeak development.<br>
<br></div>I'm a total newbie to Squeak but so far I'm finding it very interesting. I have to develop an academic project with a classmate and so far I've used Squeak alone by my own without sharing anything so this new requirements raised some questions.<br>
<br>I managed to use Montecello fine but It seems to do a version control like on jar packages (doing a Java analogy). I thought of using Montecello over Dropbox with my friend. Is this solution reliable / recommended?<br></div></div></div></blockquote><div><br></div><div>To prevent confusion: Metacello and Monticello are two different things. Monticello is a version control / package management tool; Metacello manages *dependencies* between Monticello packages / versions.</div><div><br></div><div>The jar analogy is not half bad; basically, the source code is stored in "chunk format" (the same format used by the .sources and .changes files) alongside some meta information and is then zipped.</div><div><br></div><div>Using Monticello to share packages over Dropbox is indeed a possible solution. All you'd have to do is to put your "packages-cache" directory (in the image directory) under Dropbox control and commit all versions to your local repository (or use an alternative local directory of course. Actually, rather use a different directory, because the package-cache gets very big, since all versions loaded from the net will be cached there).</div><div>The usual way of collaboration however, is to create a repository on <a href="http://ss3.gemstone.com">ss3.gemstone.com</a> or <a href="http://smalltalkhub.com">smalltalkhub.com</a> (not sure which one the Squeakers prefer, I usually work with Pharo) and commit to that repository.</div><br><blockquote type="cite"><div dir="ltr"><div><div>
<br>For me it seems more intuitive using git versioning over code files. To accomplish that I've read something about Metacello, but the Squeak installation seems *very* confusing to me. I managed to create a filetree repository but I don't know how to link it to my git repo: <a href="https://github.com/poo2013pos/FLOdactic">https://github.com/poo2013pos/FLOdactic</a>. I've read both manuals of Metacello, the one on Github and the one on Google Code but no luck so far. Can anyone please help me with this?<br></div></div></div></blockquote><div><br></div><div>Filetree simply stores the source code in a different format than Monticello (for various reasons) but is compatible with Monticello. Since there's no in-image Git support yet, you'll have to do the following (I use this method with Filetree, FSGit and LibGit, all on Github):</div><div>1. clone your repo from Github (let's call that directory "repo")</div><div>2. load Filetree into your image:</div><div><span class="Apple-tab-span" style="white-space:pre">        </span><span class="nc" style="font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin: 0px; padding: 0px; border: 0px; color: rgb(68, 85, 136); font-weight: bold; ">Installer</span><span style="background-color: rgb(248, 248, 248); color: rgb(51, 51, 51); font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; "> </span><span class="nf" style="font-family: Consolas, 'Liberation Mono', Courier, monospace; font-size: 13px; line-height: 19px; margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 0); font-weight: bold; ">ss3</span></div><pre style="margin-top: 15px; margin-bottom: 15px; padding: 6px 10px; border: 1px solid rgb(204, 204, 204); font-size: 13px; font-family: Consolas, 'Liberation Mono', Courier, monospace; background-color: rgb(248, 248, 248); line-height: 19px; overflow: auto; border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; color: rgb(51, 51, 51); ">    <span class="nf" style="margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 0); font-weight: bold; ">project:</span> <span class="s" style="margin: 0px; padding: 0px; border: 0px; color: rgb(221, 17, 68); ">'FileTree'</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">;</span>
    <span class="nf" style="margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 0); font-weight: bold; ">install:</span> <span class="s" style="margin: 0px; padding: 0px; border: 0px; color: rgb(221, 17, 68); ">'ConfigurationOfFileTree'</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">.</span>
((<span class="nc" style="margin: 0px; padding: 0px; border: 0px; color: rgb(68, 85, 136); font-weight: bold; ">Smalltalk</span> <span class="nf" style="margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 0); font-weight: bold; ">at:</span> <span class="ss" style="margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 115); ">#ConfigurationOfFileTree</span>) <span class="nf" style="margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 0); font-weight: bold; ">project</span> <span class="nf" style="margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 0); font-weight: bold; ">version:</span> <span class="err" style="margin: 0px; padding: 0px; border: 0px; color: rgb(166, 23, 23); background-color: rgb(227, 210, 210); ">#</span><span class="s" style="margin: 0px; padding: 0px; border: 0px; color: rgb(221, 17, 68); ">'stable'</span>) <span class="nf" style="margin: 0px; padding: 0px; border: 0px; color: rgb(153, 0, 0); font-weight: bold; ">load</span><span class="p" style="margin: 0px; padding: 0px; border: 0px; ">.</span></pre><div><br></div><div>3. open Monticello</div><div>4. create a new Filetree repository and choose as target the directory "repo"</div><div>5. commit a version of a package to your new repository (or copy one there via the "copy" button)</div><div>6. do a "git status" on your "repo" and you'll see the Filetree files</div><div>7. "git commit -am 'first Filetree commit'" and "git push"</div><div>8. done!</div><br><blockquote type="cite"><div dir="ltr"><div><div>
<br></div>My other question is regarding Seaside. We have to implement a basic user authentication system and ACL for items. Is there something that we can reuse on Seaside classes or similar? I guess this is a quite common problem and perhaps is there something already available.<br></div></div></blockquote><div><br></div>Yes, there is indeed but I don't have the means to look it up right now. I'm sure someone else can help you out there.</div><div><br></div><div>Cheers,</div><div>Max</div><div><br></div><div><br><blockquote type="cite"><div dir="ltr"><div>
<br></div>Thanks a lot!<br clear="all"><div><br>-- <br><br>Albert.<br><br><a href="http://www.albertdelafuente.com/" target="_blank">http://www.albertdelafuente.com</a>
</div></div>
<br></blockquote></div><br></body></html>