Make pipeline deep immutable
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 5.3k
- Forks
- 510
- Avg merge
- 8d 5h
- Merged PRs (30d)
- 5
Description
Today, options pushed from a user to parsers but also directly parser instance (which are less directly exposed to users) can be modified during the process of request.
The work on making the markdown pipeline thread/safe immutable was only valid for the list part of the extensions ( #5 ), but is not really valid for some classes that are shared and can be modified during the process of a pipeline.
We need to figure out what we want to do with that.
Likely, we will have to make all these classes immutable - which will require painful constructors...etc.
(See for example comment on PR 327 )
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the pipeline immutability work from issue #5 and the comment on PR 327, focusing on parser instances and shared classes that can be modified during request processing. Define which classes and options must become immutable, then determine the constructor changes and validation needed for thread-safe pipeline use.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100