Skip to content

Commit 367f51f

Browse files
Update software-archiving.qmd
Overhaul to replicate structure and message of data archiving article. Extension of "How does this this help you in your research?" Note: there is a link at the end of the article to be added once the page on services provided by the VU is complete
1 parent f2bf50b commit 367f51f

1 file changed

Lines changed: 41 additions & 124 deletions

File tree

topics/software-archiving.qmd

Lines changed: 41 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -5,130 +5,47 @@ categories: [Research Software]
55

66
## What is Software Archiving?
77

8-
Software archiving is the process of preserving research software in a stable, long-term repository to ensure it remains accessible and functional for future use, verification, and reuse. Unlike regular backup or version control, software archiving specifically focuses on long-term preservation with appropriate metadata, documentation, and technical measures to combat software decay and technological obsolescence.
9-
10-
Software archiving involves capturing not just the source code, but also the complete software environment, dependencies, documentation, and metadata necessary to understand, execute, and maintain the software over time. This includes preserving information about the runtime environment, operating system requirements, library dependencies, and usage instructions.
11-
12-
## Examples
13-
14-
Software archiving typically includes:
15-
16-
### Core Software Components
17-
- **Source code**: Complete codebase including all modules and components
18-
- **Executable versions**: Compiled binaries for different platforms where applicable
19-
- **Configuration files**: Settings, parameter files, and environment configurations
20-
- **Build scripts**: Instructions and tools for compiling the software
21-
- **Installation instructions**: Step-by-step setup and deployment guides
22-
23-
### Documentation and Metadata
24-
- **Technical documentation**: API documentation, code comments, architecture descriptions
25-
- **User manuals**: Instructions for using the software and interpreting outputs
26-
- **Scientific documentation**: Publications, papers, and reports describing the software's purpose and validation
27-
- **Version history**: Complete change logs and version control history
28-
- **Licensing information**: Clear licensing terms and usage permissions
29-
30-
### Environment and Dependencies
31-
- **Dependency specifications**: Lists of required libraries, frameworks, and tools
32-
- **Container images**: Docker or similar containers preserving the complete runtime environment
33-
- **Virtual machine images**: Complete operating system environments where necessary
34-
- **Environment files**: Conda environments, requirements.txt files, package manifests
35-
- **System requirements**: Hardware specifications and operating system requirements
36-
37-
### Preservation Metadata
38-
- **Descriptive metadata**: Purpose, scope, and functionality of the software
39-
- **Technical metadata**: File formats, system requirements, and technical specifications
40-
- **Provenance metadata**: Development history, authorship, and institutional affiliations
41-
- **Access metadata**: Usage rights, contact information, and support availability
42-
- **Preservation metadata**: Archival dates, integrity checks, and preservation actions
43-
44-
### Testing and Validation Materials
45-
- **Test suites**: Unit tests, integration tests, and validation datasets
46-
- **Test results**: Documentation of testing outcomes and performance benchmarks
47-
- **Example datasets**: Sample input and output data for software validation
48-
- **Regression tests**: Tests to ensure software continues functioning correctly
49-
- **Performance benchmarks**: Metrics for evaluating software performance over time
50-
51-
## Tools/services/resources related to concept provided by VU
52-
53-
VU Amsterdam provides several resources to support software archiving:
54-
55-
### Primary Archival Repositories
56-
- **Zenodo**: Long-term preservation with permanent DOIs, integrated with GitHub for automatic archiving
57-
- **Pure**: [Required registration](software-registration.qmd) of research software per VU policy, provides institutional record
58-
- **4TU.ResearchData**: Specialized repository for engineering and technical software
59-
- **DataverseNL**: For software associated with published datasets and research outputs
60-
61-
### Development and Preparation Tools
62-
- **GitHub**: Version control with integrated Zenodo archiving for releases
63-
- **ADA HPC Cluster**: Environment for testing and preparing software for archival
64-
- **VU Compute Hub**: Jupyter environments for documenting and packaging software
65-
- **Docker/Singularity**: Container technologies for preserving complete software environments
66-
67-
### Documentation and Metadata Support
68-
- **Research Data Management (RDM) Support**: Guidance on software archiving best practices via [rdm@vu.nl](mailto:rdm@vu.nl)
69-
- **Pure registration support**: Assistance with institutional software registration requirements
70-
- **CITATION.cff files**: Support for creating software citation files
71-
- **Metadata standards**: Guidance on appropriate metadata schemas and documentation
72-
73-
### Legal and Licensing Support
74-
- **Privacy Champions**: Faculty-level support for licensing and intellectual property questions
75-
- **Legal advice**: Institutional guidance on software licensing for long-term preservation
76-
- **Processing agreements**: For software handling personal or sensitive data during archival
77-
78-
### Quality Assurance and Validation
79-
- **Code review processes**: Ensuring software quality before archival
80-
- **Testing frameworks**: Tools for validating software functionality pre-archival
81-
- **Documentation review**: Support for ensuring complete documentation
82-
- **Metadata validation**: Verification of archival metadata completeness and quality
8+
When we mention **data archiving** at VU Amsterdam, we mean the following:
9+
10+
> Creation of a secure and immutable copy of research data, associated metadata, accompanying documentation, and software code (where relevant) with the intention to ensure (conditional) access for a predetermined, minimum, period of time.
11+
12+
In the case of software archiving the software code takes the place of research data in the above quote. The two main differences are the inclusion of a version number in the metadata and the distinction of **user** and **developer** documentation.
13+
14+
As stated in the [Research Data and Software Management Policy](../topics/research-data-and-software-management-policy.qmd), researchers are responsible for archiving all research software and data that leads to a published result (either in an article or other narrative form) in a trusted repository for a period of at least ten years after this publication, unless legal requirements, discipline-specific guidelines or contractual arrangements dictate otherwise.
15+
16+
## Purpose
17+
18+
Software archiving is a vital to allow research to be verified and reproduced. Verification is important for a transparent research practice, a value VU Amsterdam is strongly committed to. Software is typically used to clean and analyse datasets gathered or recorded by researchers meaning it is a fundamental part of the research process. Archiving your software ensures that software will be preserved for the long term and can be accessed, even when the Principal Investigator or other members of the research team are no longer available at VU Amsterdam.
19+
20+
Proper software archiving transforms research software from temporary project tools into lasting scientific contributions that continue to generate value long after the original project concludes, supporting both individual career development and broader scientific progress.
21+
22+
## Requirements
23+
24+
At VU Amsterdam, we strive to make our research software [FAIR](../topics/fair-principles.qmd). When research software is archived in a repository provided by VU Amsterdam ([Yoda](https://publication.yoda.vu.nl/) or [DataverseNL](https://dataverse.nl/dataverse/vuamsterdam), the following requirements apply:
25+
26+
- The software must be provided with associated Metadata using the [VU Minimal metadata guide](https://github.com/vu-rdm-tech/metadata/blob/main/minimal_metadata_guide.md);
27+
- The software must have a [Persistent identifier](../topics/persistent-identifier.qmd) (or Identifiers) to increase findability;
28+
- A licence must be applied to the data and software in order to indicate if it can be reused by others and if so, under which conditions. Without a license the software cannot be used in future research as easily;
29+
- The software must be accompanied by documentation, both user and developer. User documentation should cover installation and basic use, whereas developer documentation should cover how it works and why certain design decisions were made
30+
31+
If you use an external repository, these requirements are useful to keep in mind as well, because they make the software FAIR to a large extent, but in that case you will have to rely on the properties of the repository.
32+
33+
Since code can be written in any number of ways to solve a problem the absolute minimum that should be archived to ensure verification is a (working) copy of the code (or workflow) that takes the raw data to the end result and a list of the dependencies and their versions.
34+
35+
## How does software archiving work in practice?
36+
37+
Data archiving must happen in a repository. This means that data storage solutions for during research, like Research Drive, are not suitable for software archiving. They don’t generate a Persistent Identifier and do not ask for metadata or a licence. Code repositories like GitHub and GitLab fall under the label of development environments, they have the possibility to include a DOI and metadata, but do not require it. As a result, the VU recommends using the following services for archiving research software:
38+
39+
- **[Zenodo](https://zenodo.org/)**: Long-term preservation with permanent DOIs, integrated with GitHub for automatic archiving
40+
- **[Pure](https://research.vu.nl/admin)**: [Required registration](software-registration.qmd) of research software per VU policy, provides institutional record
41+
- **[DataverseNL](https://dataverse.nl/)**: For software associated with published datasets and research outputs
42+
- **[Yoda](https://yoda.vu.nl/site/)**: For data and software associated with research, note that this is not by default publicly accessible.
43+
44+
A more complete form of software archiving involves capturing not just the source code, but also the complete software environment, dependencies, documentation, and metadata necessary to understand, execute, and maintain the software over time. This includes preserving information about the runtime environment, operating system requirements, library dependencies, and usage instructions. As a result, unlike regular backup or version control, software archiving specifically focuses on long-term preservation to combat software decay and technological obsolescence.
8345

8446
## How does this help you in your research?
8547

86-
### Long-term Research Integrity
87-
- **Reproducible results**: Archived software enables others to reproduce your computational research
88-
- **Method verification**: Researchers can examine and validate your computational methods
89-
- **Research continuity**: Software remains available even after project completion or personnel changes
90-
- **Audit trail**: Complete record of computational tools used in research for compliance and transparency
91-
92-
### Enhanced Research Impact
93-
- **Increased citations**: Properly archived and citable software receives more recognition and citations
94-
- **Broader adoption**: Well-preserved software is more likely to be discovered and reused by others
95-
- **Research legacy**: Your computational contributions remain available for future researchers
96-
- **Professional recognition**: Archived software demonstrates technical expertise and contributes to career advancement
97-
98-
### Collaboration and Knowledge Transfer
99-
- **Team continuity**: New team members can access and understand previous software development
100-
- **Cross-institutional collaboration**: Partners can access and work with your archived software
101-
- **Educational use**: Archived software can serve as teaching materials and examples for students
102-
- **Community building**: Open archived software fosters research communities around shared tools
103-
104-
### Compliance and Policy Requirements
105-
- **VU policy compliance**: Meets institutional requirements for research software management
106-
- **Funder mandates**: Satisfies funding agency requirements for software preservation and sharing
107-
- **Research integrity**: Supports transparent and verifiable research practices
108-
- **Legal protection**: Proper archiving with clear licensing protects intellectual property rights
109-
110-
### Risk Management and Continuity
111-
- **Technology obsolescence**: Proper archiving includes measures to combat software decay
112-
- **Personnel changes**: Software remains accessible when original developers leave projects
113-
- **Hardware failures**: Multiple preservation copies protect against data loss
114-
- **Institutional changes**: External archives ensure software survives institutional changes
115-
116-
### Economic and Efficiency Benefits
117-
- **Avoided duplication**: Other researchers can build on your work rather than recreating software
118-
- **Reduced development costs**: Future projects can leverage archived software components
119-
- **Grant advantages**: Well-archived previous software strengthens future funding applications
120-
- **Resource optimization**: Institutional investment in software is preserved and maximized
121-
122-
### Scientific and Technical Advancement
123-
- **Method evolution**: Archived software provides foundation for methodological improvements
124-
- **Comparative studies**: Enables comparison of different computational approaches
125-
- **Historical analysis**: Supports studies of how computational methods have evolved
126-
- **Error detection**: Archived software allows identification and correction of computational errors
127-
128-
### Open Science and Transparency
129-
- **Public accessibility**: Archived software contributes to open science initiatives
130-
- **Peer review**: Enables thorough peer review of computational methods
131-
- **Transparency**: Open access to computational tools supports research transparency
132-
- **Global collaboration**: International researchers can access and contribute to your software
133-
134-
Proper software archiving transforms research software from temporary project tools into lasting scientific contributions that continue to generate value long after the original project concludes, supporting both individual career development and broader scientific progress.
48+
Archiving is a form of preservation and preserving your work means it remains accessible and usable for the rest of the research community for longer. This will allow greater levels of research continuity and help to avoid duplication of code reducing research time and costs in your field. Correctly archiving will include a DOI, license, documentation, and metadata allowing you to receive more citations and professional recognition, avoid legal disputes on sharing your work, open you up to global collaboration, meet needed for additional funding and publications, and makes knowledge transfer easier.
49+
50+
51+
[Read more here](<page-about-services>.qmd) on the services the VU provide to help with archiving.

0 commit comments

Comments
 (0)