You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _data/tool_and_resource_list.yml
+17-6Lines changed: 17 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -451,10 +451,6 @@
451
451
id: conda
452
452
name: Conda
453
453
url: https://anaconda.org/anaconda/conda
454
-
- description: Python project and dependency management and packaging tool
455
-
id: poetry
456
-
name: Poetry
457
-
url: https://python-poetry.org/
458
454
- description: Semantic versioning (SemVer) is a widely-adopted version scheme that encodes a version of a project by a three-part version number (Major. Minor. Patch), an optional pre-release tag, and an optional build meta tag.
459
455
id: semantic-versioning
460
456
name: Semantic Versioning
@@ -463,12 +459,27 @@
463
459
id: calendar-versioning
464
460
name: Calendar Versioning
465
461
url: https://calver.org/
462
+
- description: Pkg.jl is a package manager for the Julia programming language.
463
+
id: pkg-jl
464
+
name: Pkg.jl
465
+
url: https://pkgdocs.julialang.org/v1/
466
+
- description: Conan is an open source, decentralised and multi-platform package manager for C and C++ that allows for creating and sharing native binaries.
467
+
id: conan
468
+
name: Conan
469
+
url: https://conan.io/
470
+
- description: Maven is a software project management and build automation tool used primarily for Java, but can also be used to build and manage projects written in C#, Ruby, Scala, and other programming languages.
471
+
id: maven
472
+
name: Maven
473
+
url: https://maven.apache.org/
474
+
- description: Bundler is a Ruby gems and environment management tool for Ruby projects.
475
+
id: bundler
476
+
name: Bundler
477
+
url: https://bundler.io/
466
478
- description: FAIR Python Cookiecutter is a cookiecutter template command-line tool to help you kickstart a modern best-practice Python project with FAIR metadata
- description: Prettier is a code formatter to enforce a consistent style with its own rules for different languages, including JavaScript, TypeScript, Flow, JSX, JSON, CSS, SCSS, Less, HTML, Vue, Angular, GraphQL, Markdown, and YAML.
@@ -64,8 +64,6 @@ They also enable you to use a specific older version of a package for your proje
64
64
65
65
Most modern programming languages use some kind of virtual environments or a similar mechanism to isolate libraries or dependencies for a specific project,
66
66
making it easier to develop, run, test and share code with others.
67
-
Some examples include Bundler for Ruby, Conan for C++, or Maven with classpath for Java.
68
-
This can also be achieved with more generic package (dependency) managers like Spack, which is used extensively in HPC settings to resolve complex dependencies.
69
67
70
68
Part of managing a virtual software development environment involves installing, updating and removing external packages on your system.
71
69
You would need a package manager tool for your programming language to be able to do that - this is typically a command line tool that you invoke from
@@ -83,6 +81,8 @@ Sometimes, a package manager combines both of these functionalities and you only
83
81
a Python package and environment management system part of the Anaconda Python distribution (often used by the scientific community). {% tool "conda" %} has its own repository system separate from
84
82
(but compatible with) PyPI that distributes non-Python packages packages as well and has its own non-venv-based virtual environment system.
85
83
- If you are using R - consider {% tool "renv" %} that will help you build reproducible environments for your R projects
84
+
- For Julia programming language - check {% tool "pkg-jl" %}; for C++ - check {% tool "conan" %}, for Java - check {% tool "maven" %}, for Ruby - check {% tool "bundler" %}.
85
+
- There are some some generic tools to have a look at as well - e.g. [Spack][spack], [nix][nix], [guix][guix].
86
86
- You need to decide what tools are best for you - based on your personal preferences, or what the software project and your team or community is
87
87
already using (so you can get help when you need it). Not using virtual environments at all and mixing different tools to manage them could lead to
88
88
a [bad example of a spaghetti setup][python-env-hell], not knowing which dependencies are being used and causing issues when running and debugging code.
@@ -98,3 +98,6 @@ a [bad example of a spaghetti setup][python-env-hell], not knowing which depende
0 commit comments