Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0027-how-to-retire-old-codes #27

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 69 additions & 0 deletions decisions/0027-how-to-retire-old-codes
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
---
# Configuration for the Jekyll template "Just the Docs"
parent: Decisions
nav_order: 1
title: Template
layout: home

# These are optional elements. Feel free to remove any of them.
# status: {proposed | rejected | accepted | deprecated | … | superseded by [ADR-0005](0005-example.md)}
# date: {YYYY-MM-DD when the decision was last updated}
# deciders: {list everyone involved in the decision}
# consulted: {list everyone whose opinions are sought (typically subject-matter experts); and with whom there is a two-way communication}
# informed: {list everyone who is kept up-to-date on progress; and with whom there is a one-way communication}
---
<!-- we need to disable MD025, because we use the different heading "ADR Template" in the homepage (see above) than it is foreseen in the template -->
<!-- markdownlint-disable-next-line MD025 -->
# {short title of solved problem and solution}

## Context and Problem Statement

Some codes in the context of the Materials Project have only been developed based on short-term funding, and long-term support is hard/impossible to guarantee.
This code might still be used in the community. One of the recent example codes is Matminer that triggered the discussion.

<!-- This is an optional element. Feel free to remove. -->
## Decision Drivers

* These codes are still useful to the community
* There will likely not be any long-term funding for such codes

## Considered Options

### Use specific versions of the dependencies (via toml or setup.py-based installations) and then release a final version (or release candidate)
* Good as the code can still be used
* Bad as it might not be easy to use together with other software
### Transfer code ownership to a fork outside of MP (if someone wants to take over code)
* Good as the code will still be maintained
### Give maintaining rights to people outside of MP
* Good as more people can merge and contribute
* Not clear how such a decision can be made
### Ask on the repo if someone might want to take over
* Good as someone else might maintain the code in the future
* Connected with transferring code ownership to someone else

## Decision Outcome

Chosen option: "{title of option 1}", because
{justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.

<!-- This is an optional element. Feel free to remove. -->

## Implementation Plan

{List changes to be made in affected codes, as applicable, or list "N/A"}

- [ ] `pymatgen`: ...
- [ ] `atomate2`: ...
- [ ] `emmet`: ...
- [ ] `crystal-toolkit`: ...
- [ ] `jobflow`: ...
- [ ] `maggma`: ...

<!-- This is an optional element. Feel free to remove. -->
## More Information

{You might want to provide additional evidence/confidence for the decision outcome here and/or
document the team agreement on the decision and/or
define when this decision when and how the decision should be realized and if/when it should be re-visited and/or
how the decision is validated.
Links to other decisions and resources might here appear as well.}