Kevin: Thanks again. I have uploaded Permutations.jl to github but not yet
tagged and submitted. (I've also posted some other modules there I've been
working on.) Before tagging and submitting, I would like to create a
runtests.jl file in a test directory, but don't know how to structure that.
Perhaps you can provide me with a *simple* version so I can use that as a
template? -Ed


On Fri, Jul 25, 2014 at 12:07 AM, Kevin Squire <[email protected]>
wrote:

>
>
>
> On Thu, Jul 24, 2014 at 4:52 PM, Ed Scheinerman <
> [email protected]> wrote:
>
>> Thanks Kevin.
>>
>> Sure. I’d be happy to do so. In a sense, this was a little project for me
>> to learn how to work in Julia and practice for a more extensive package I’m
>> doing for SimpleGraphs (that is not quite ready for prime time).  What do I
>> need to do to be “in compliance”?
>>
>
> :-) Not much, just some minor renaming/rearrangements.  Almost all of this
> is convention, but mostly just taken for the right way to do things:
>
> First, the best way to start a package (and maybe recreate this one) is
> probably to run Pkg.generate("MyPackage.jl").  This will create the basic
> package structure for you under .julia/v0.3 (or whatever version you're
> running), with the preferred directory structure and skeletons for all of
> the typical files you'll need/want.  You might just want to run this
> command to create a dummy package (or recreate this one) to see what it
> does.
>
> That aside, starting from your package:
>
> 1. You probably noticed that packages can't contain types with the same
> name as the package, and you gave your package a lower-case name.  However,
> packages in Julia are upper case by convention, which causes problems when
> you have a package like Permutation with a type called Permutation.
>
> The solution that has emerged is to pluralize the package name (and module
> name).  So, `Permutations` and `module Permutations`.
>
> 2. (Almost?) all package names have a ".jl" suffix.  Convention again, but
> it makes it really easy to find them on github and with Google, etc.  So
> the repository name on Github should be `Permutations.jl`.  (Your local
> copy will still be named "Permutations", with no suffix.)
>
> 3. This is taken care of by the first two points, but it's also pretty
> much necessary that the package, main source file and module have the same
> name (including case).  If you name the file Permutations.jl and put it
> in ~/.julia/v0.3/Permutations/src/, Julia will automatically find it when
> do `using Permutations` or `import Permutations`.  (No magic--that's the
> first place Julia looks.)
>
> 4. If you want, you could create a test directory with a file called
> "runtests.jl", which will run some basic tests on your code.  If you do,
> these tests will be run automatically, once per day (against the latest
> version of Julia).  May not mean much for Permutations.jl, but at least you
> would know if some change in Julia broke your code.
>
> 5. While I appreciate latex as much as the next geek, it would probably be
> better to write your documentation using markdown, and perhaps as part of
> README.md for now.
>
> For your docs, in particular, this would be pretty trivial.  The only
> trick maybe is knowing that you can write <verbatim> blocks using triple
> backtics and (optionally) the language name:
>
> ```julia
> julia> two_row(p)
> 2x6 Array{Int64,2}:
>  1  2  3  4  5  6
>  4  1  3  2  6  5
> ```
>
> =================
>
> Once you've made these changes, you can tag and submit a version in
> METADATA.jl.  Rather than discuss that in detail, I'll refer you to the
> docs, but if you have any questions, please feel free to write back here
> with questions or to ask for help.
>
> Packaging docs:
>
>    -
>    http://julia.readthedocs.org/en/latest/manual/packages/#package-development
>    -
>    
> https://github.com/JuliaLang/julia/blob/kms/pkg_doc_updates/doc/manual/packages.rst#making-your-package-available
>
> The first link is the official docs. The second is part of a pull request
> that I hope gets integrated at some point, and which better explains the
> newer, easier (but still somewhat experimental) way of tagging packages in
> Julia v0.3.
>
> Hope this was helpful, and not too onerous.
>
> Cheers,
>    Kevin
>
>
>
>> Best,
>> Ed
>>
>>
>> On Jul 24, 2014, at 2:06 PM, Kevin Squire <[email protected]> wrote:
>>
>> Dear Ed,
>>
>> Thank you for announcing this!  I don't have any projects right now
>> that need permutations, but I have in the past, and while there is some
>> support for permutations in mainline Julia, permutations as a data type are
>> definitely useful!
>>
>> I'm wondering if you're interested in creating an official package out of
>> this?  It would require a few small changes to follow Julia conventions,
>> but would make it easier for people to test. What do you think?
>>
>> Cheers!
>>    Kevin
>>
>> On Thursday, July 24, 2014, Ed Scheinerman <[email protected]>
>> wrote:
>>
>>> Dear all,
>>>
>>> I've created a Permutation data type for Julia. A Permutation object
>>> represents a permutation of a finite set of the form {1,2,...,n}.
>>> Operations include composition and inverses. Output is in disjoint cycle
>>> format. I hope someone finds this useful.
>>>
>>> It's available for download from github:
>>>
>>> https://github.com/scheinerman/Permutation.git
>>>
>>> but all you need is the file "permutation.jl" (attached) and the brief
>>> instructions "permutation.pdf" (also attached).
>>>
>>> -Ed Scheinerman
>>>
>>>
>>>
>>
>


-- 
Ed Scheinerman ([email protected])

Reply via email to