PDL Development


Report a bug Request a feature Help with development

Report a bug

To report a bug, first login to SourceForge (or register an account) and then go to the bugs database.

Request a feature

To request a feature, first login to SourceForge (or register an account) and then go to the feaure request tracker and click on "Create Ticket".

Help with development

PDL's source code is stored in a Git repository, but you can also use Mercurial or Bazaar (via plugins) to contribute to PDL.

Note: Windows users may want to use msysGit.
Non-developers
git clone git://git.code.sf.net/p/pdl/code pdl-code

(Use the patch manager to submit patches).

Developers
git clone ssh://USERNAME@git.code.sf.net/p/pdl/code pdl-code
See also
Note: You must install the Hg-Git extension.
Non-developers
hg clone git://git.code.sf.net/p/pdl/code pdl-code

(Use the patch manager to submit patches).

Developers
hg clone git+ssh://USERNAME@git.code.sf.net/p/pdl/code pdl-code
See also
Note: You must install the Bzr-Git plugin.
Non-developers
bzr branch git://git.code.sf.net/p/pdl/code pdl-code

(Use the patch manager to submit patches).

Developers
bzr branch git+ssh://USERNAME@git.code.sf.net/p/pdl/code pdl-code
See also

Basic commands

Git Mercurial Bazaar
Commit changes to your repository
git add file1 file2 ...
git commit -a
(You must "add" before every commit or use "-a").
hg add file1 file2 ...
hg commit
bzr add file1 file2 ...
bzr commit
Pull and merge any changes others have made
git fetch
git merge
hg pull
hg merge
bzr pull
bzr merge
Push your changes back to the shared server.
git push
hg push
bzr dpush
Undo changes since the previous commit.
git reset --hard ORIG_HEAD
hg revert .
bzr revert
TIP: Interactively select changes to commit.
git add --patch
hg record

(See: record extension).

N/A but the shelve can help.
Create a branch
git branch Kiwi
git checkout Kiwi
hg branch Kiwi
bzr branch Kiwi
Push a branch to the server
git config branch.Kiwi.remote origin
git config branch.Kiwi.merge refs/heads/Kiwi
hg push
(Pushes all branches).
bzr push
(Pushes current branch).

Hints for developers

  1. Before committing a change to the repository you should update

    • MANIFEST (using make manifest), MANIFEST.SKIP, TODO files if applicable.
  2. Remember to include POD documentation for any functions you add to the distribution.

    • See Basic/Core/Core.pm for an example of including POD documentation in .pm files.
    • See Basic/Core/Primitive/Primitive.pd for an example of including POD documentation in PDL .pd files.
    • Read the documentation in PDL::Doc for a detailed description of the PDL documentation conventions.
  3. Make sure you add a test case in the 't' directory for any significant additional capability you add to the PDL package.

  4. Don't commit before you successfully built and passed make test. But then again, don't keep your changes private for too long to avoid conflicts with other developers.

  5. Use branches for long-running projects. Git and Mercurial both have excellent support for branching and merging. Use it!

  6. Bugs reported on the list should be entered into the bug database and bugs closed when a patch has been committed as a fix. (Primary responsibility for this task is the pumpking, but other devels should be able to help.)