diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100755 index 3b7c28f10a..0000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,11 +0,0 @@ -* **I'm submitting a ...** -[ ] bug report -[ ] feature request -[ ] question about the decisions made in the repository -[ ] question about how to use this project - -* **Summary** - - - -* **Other information** (e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, links for us to have context, eg. StackOverflow, personal fork, etc.) diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md new file mode 100644 index 0000000000..56355ffce5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -0,0 +1,38 @@ +--- +name: Bug Report +description: Use this if you've found a bug +title: "Bug Report: [Short description of the bug]" +labels: 🐛bug +assignees: '' + +--- + + + +## About Me + + +## Observed Behavior + + +## Expected Behavior + + +## Version + + +## Severity / Impact + + + diff --git a/.github/ISSUE_TEMPLATE/OTHER.md b/.github/ISSUE_TEMPLATE/OTHER.md new file mode 100644 index 0000000000..9b597cd7d2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/OTHER.md @@ -0,0 +1,22 @@ +--- +name: Other Issue +description: Use this for other issues +title: "Other: [Short description of the issue]" +labels: "Other" +assignees: '' + +--- + + + +## About Me + + +## Issue + diff --git a/.github/ISSUE_TEMPLATE/QUESTION.md b/.github/ISSUE_TEMPLATE/QUESTION.md new file mode 100644 index 0000000000..39d6f48fed --- /dev/null +++ b/.github/ISSUE_TEMPLATE/QUESTION.md @@ -0,0 +1,22 @@ +--- +name: Question +description: Use this if you have a question to the Sofie team +title: "Question: [Short summary of the question]" +labels: ❓ Question +assignees: '' + +--- + + + +## About Me + + +## My Question + diff --git a/.github/ISSUE_TEMPLATE/RFC.md b/.github/ISSUE_TEMPLATE/RFC.md new file mode 100644 index 0000000000..4cc485cd51 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/RFC.md @@ -0,0 +1,46 @@ +--- +name: Request for Comments +description: Use this to initiate a discussion about a new feature or a larger change +title: "RFC: [Short description of the feature/change]" +labels: RFC, Contribution +assignees: '' + +--- + + + +## About Me + + +## Background + + + +## Proposal + + + +## Status + + +The Sofie Team will evaluate this RFC and open up a discussion about it, usually within a week. + +- [x] RFC created +- [ ] Sofie Team has evaluated the RFC +- [ ] A workshop has been planned +- [ ] RFC has been discussed in a workshop +- [ ] A conclusion has been reached, see comments in thread. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index caae6b13d2..92803e9d93 100755 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,13 +1,56 @@ -* **What kind of change does this PR introduce?** (Bug fix, feature, docs update, ...) + +## About the Contributor + -* **What is the current behavior?** (You can also link to an open issue here) +## Type of Contribution +This is a: + +Bug fix / Feature / Code improvement / Documentation improvement / Other (please specify) -* **What is the new behavior (if this is a feature change)?** +## Current Behavior + +## New Behavior + -* **Other information**: + +## Testing Instructions + + + +## Other Information + + + +## Status + + +- [ ] PR is ready to be reviewed. +- [ ] The functionality has been tested by the author. +- [ ] Relevant unit tests has been added / updated. +- [ ] Relevant documentation (code comments, [system documentation](https://nrkno.github.io/sofie-core/)) has been added / updated. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..e8d30ac2ef --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,12 @@ +# How to Contribute to this Repository + +Before contributing to this specific repository, please read the [Contribution Guidelines](https://nrkno.github.io/sofie-core/docs/for-developers/contribution-guidelines) for the Sofie project. + + +## Branches +This repository uses the following branches: + +* **_master_** is our main branch. We consider it stable and it is used in production. +* The **_releaseXX_** branches are our in-development branches. When a release is ready, we decide to “freeze” that branch and create a new **_releaseXX+1_** branch. + +We encourage you to base your contributions on the latest **_releaseXX_** branch, alternatively the **master** branch or a recently frozen **_releaseXX_** branch. The [_Sofie Releases_](https://nrkno.github.io/sofie-core/releases) page collects the status and timeline of the releases. diff --git a/LICENSE b/LICENSE index 78f0f2dbb8..f33d9dcf63 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License (MIT) -Copyright (c) 2018 Norsk rikskringkasting AS (NRK) +Copyright (c) 2023 Norsk rikskringkasting AS (NRK) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 675692b35d..aed66e9535 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,19 @@ -# Sofie: The Modern TV News Studio Automation System (Timeline State Resolver TSR library) - +# Sofie Timeline State Resolver (TSR) [![Node CI](https://github.com/nrkno/sofie-timeline-state-resolver/actions/workflows/node.yaml/badge.svg)](https://github.com/nrkno/sofie-timeline-state-resolver/actions/workflows/node.yaml) [![codecov](https://codecov.io/gh/nrkno/sofie-timeline-state-resolver/branch/master/graph/badge.svg)](https://codecov.io/gh/nrkno/sofie-timeline-state-resolver) -This is a part of the [**Sofie** TV News Studio Automation System](https://github.com/nrkno/Sofie-TV-automation/). +This is the _Timeline State Resolver (TSR)_ library, part of the [**Sofie** TV Automation System](https://github.com/nrkno/Sofie-TV-automation/). This library orchestrates and controls different devices. Its input is a [timeline](https://github.com/SuperFlyTV/supertimeline) data structure and a layer-to-device-map. +Using this input, it resolves the expected state, diffs the state against current state, and sends commands to devices where necessary. -## Abstract +## General Sofie System Information +* [_Sofie_ Documentation](https://nrkno.github.io/sofie-core/) +* [_Sofie_ Releases](https://nrkno.github.io/sofie-core/releases) +* [Contribution Guidelines](CONTRIBUTING.md) +* [License](LICENSE) -This library orchestrates and controls different devices. -Its input is a [timeline](https://github.com/SuperFlyTV/supertimeline) data structure and a layer-to-device-map. -Using the input, it resolves the expected state, diffs the state against current state and sends commands to devices where necessary. +--- -## Supported devices +## Supported Devices - **[CasparCG](http://casparcg.com/)** - using the [casparcg-connection](https://github.com/SuperFlyTV/casparcg-connection) library - **Blackmagic Design ATEM** vision mixers - using the [atem-connection](https://github.com/nrkno/tv-automation-atem-connection) library @@ -50,6 +52,10 @@ Note, that your IDE may not pick up your new type definitions until you build th There is a test application [quick-tsr](/packages/quick-tsr) inside this repository which can be used to easily test changes made to this library. -### Working with types +### Working with Types Types that need to be consumed by external systems that have no need to interact with the TSR library itself should be written in the timeline-state-resolver-types package. Some types will be generated from JSON schemas, the schemas are composed under the $schemas subfolder in the specific integration's subfolder. (See the abstract integration for an example). The types can be generated with the `yarn generate-schema-types` command. The schemas themselves must be exported from the `src/manifests.ts` file, so they can be used by external systems to validate payloads and generate UI's. + +--- + +_The NRK logo is a registered trademark of Norsk rikskringkasting AS. The license does not grant any right to use, in any way, any trademarks, service marks or logos of Norsk rikskringkasting AS._