xoofx / xoofx/markdig

Make pipeline deep immutable

Open
#328 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.