Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP


Cleanup examples/ and contrib/ #2598

ViralBShah opened this Issue · 18 comments

9 participants


A lot of stuff has accumulated in examples and contrib.

I would prefer that we have a few examples that demonstrate key concepts, and are well documented and included in the testsuite. Some suggestions for examples:

  • Move rmt to a package
  • Graphs.jl has all the graph related stuff. Remove from examples.
  • Remove other collections from examples: list, queue, and tree.
  • Remove examples/ altogether by including much of it in the documentation, and moving important functionality into existing or new packages.

Some suggestions for contrib:

  • I would like it if all the various editor support files go in contrib/editors/<editor>. This can be quite disruptive as people point to these files for daily usage. At the very least, we should rename generic files like julia.xml to julia-kate.xml, if kate can support that. The rest of the editor support files can stay as they are, if this is considered too disrputive.
  • Have a git submodule for vim, so that the various julia distributions do not miss out on vim support.
  • The various shell-scripts that are used for the build can safely be put into contrib/build.
  • I believe that we can safely delete

[ViralBShah: Updated Nov 16]


I vote for keeping editor files where they are, and moving the build stuff to contrib/build as you suggest. I often see people try julia, or try it again after a few months, and typically something different breaks each time. This could be more spurious breakage, just for the sake of tidying up 5 or 6 files.


Better late than never. Keeping things neat would cut the time when people want to find sth and make a personal change.

@ViralBShah ViralBShah was assigned

Does anyone know what contrib/ is for? I can't figure out where it is used.


$ grep -Rl .


Oops, contrib is where I didn't look. BTW, do we need repackage_system_suitesparse3.make? I think we now have a dependency on suitesparse 4, with all the 64-bit stuff.

@JeffBezanson JeffBezanson referenced this issue from a commit
@JeffBezanson JeffBezanson some cleanup in examples (#2598)
remove bigfib since this is now part of the tests
remove bitvector since we have plenty of BitArray code
move tk example to Tk repo
@ViralBShah ViralBShah referenced this issue from a commit
@ViralBShah ViralBShah Delete examples/{graph.jl,heap.jl} (#2598)
Heaps are added in #2920
Graphs.jl has sophisticated graph functionality.
Remove examples/RMT now that we have the RandomMatrices.jl package

Currently, our examples are a collection of various things. This was useful in the early days when we had not much of a website, not much of a manual, no blog posts, and most importantly, no packages.

I would prefer to get rid of examples altogether by absorbing the useful parts in base, and move the rest into packages, or delete altogether.

For the examples that are truly meant to be teaching tools, they may be better off as ipython notebooks which explain different concepts and allow users to experiment, change things, run again, etc.


:+1: to the editor subfolder idea


Need to start cleaning out the 0.3 milestone.

To me this issue is just noise and I don't have a strong opinion. If somebody wants to do this I'll go along with it.


@JeffBezanson You had a strong opinion on reorganizing the editors in contrib. Are you ok with it?

On examples, we should at least make sure that all of them run, and have instructions in the files on how to call. They could also be moved to an examples package. They have just gathered there historically, and do not serve a specific purpose of introducing/teaching julia, or showing off different things about julia.

@StefanKarpinski StefanKarpinski removed this from the 0.3 milestone

Removing the decision tag and all milestones and tagging as up for grabs. This is, while potentially useful, completely decoupled from any actual language design issues and therefore independent of any particular release and not a API or semantic decision.


I hereby drop my opinion. This issue is simply too tedious and boring to be worth having an opinion about.


While this may be tedious and boring, I am going to create a PR and finish this once and for all. I am going to move examples to an Examples.jl package and cleanup contrib.


OK that will be nice.

I think having an Examples.jl is a bit redundant. Some of the examples can just be removed, and others should be incorporated with the documentation. The embedding example is especially useful. Something like modint should appear in the manual, but I'm not sure how. Ideally it would still be present as a source file for easy loading.


I have to admit that I do not see the advantage of removing the embedding example. It is really handy to get people used to the embedding stuff. That it was missing was the actual reason I was working on it.


I don't really feel that we need to get rid of examples/ entirely. It's nice to have some files there for easy loading to demo things, and as @tknopp says, some simple examples of how to do things like embedding are a really good starting point even if they're not super useful on their own.


Agree. There's also plife that is useful. Some of them will actually benefit from better documentation.

@jiahao jiahao added the examples label

It seems like a lot of the main issues here have been dealt with/cleaned up. Any objection to closing?


Since #7400 was merged, I'll close this. Please open other more specific issues for anything else.

@quinnj quinnj closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.