7
$\begingroup$

I am interested in understanding what is modernly (2023) considered a good practice in writing packages in mma.

There are already many beautiful SE posts when it comes to packages, but they are relatively old (6+ years) which makes me wonder whether i'm missing a bigger or newer picture.

I am creating a list with various links that I believe cover the most useful concepts of packages that I've seen so far which I hope could act as a starting point for others.

  1. How to create packages
  2. How to best organise a package
  3. How to use mma packages + Git
  4. How to autogenerate packages
  5. How to make MMA documentation for a package.
  6. How to install packages
  7. How to create packlets from packages for easy distribution

These above steps appear to me like a strong starting point to also allow some level of version control, but I do not know if things have moved on to different methods or 'tricks' over the last few years.

$\endgroup$
14
  • 2
    $\begingroup$ I saw basic introduction on making package here but it does not know about git and auto-generate, these are too advanced. $\endgroup$ Commented Feb 20, 2023 at 13:30
  • 4
    $\begingroup$ This question is vague, and it isn’t clear how it is different from the linked questions $\endgroup$ Commented Feb 20, 2023 at 17:35
  • 1
    $\begingroup$ In the last few years, packages themselves haven't changed. The tools to edit and document them have improved and now we have paclets. I understand that this question is too vague, but I find it useful to have all those five links in a single page. $\endgroup$ Commented Feb 21, 2023 at 14:13
  • 1
    $\begingroup$ @alex You could add this info to the "tag wiki" at mathematica.stackexchange.com/tags/packages/info or mathematica.stackexchange.com/tags/paclets/info $\endgroup$ Commented Feb 21, 2023 at 21:33
  • 1
    $\begingroup$ Mathematica does not even have a debugger. I take this back. There is a build in debugger in Mathematica, but only 3 people in the whole world know how use it. And it works only on code written inside a notebook, not a package, this is if you can figure how to use it. The debugger that comes in workbench does not even work half the time and is broken. I tried it and gave up on the workbench. But I digress. $\endgroup$ Commented Feb 22, 2023 at 6:57

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.