Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
411 commits
Select commit Hold shift + click to select a range
65fd86a
Created Attribute base Code generation (markdown)
chaowlert Jan 24, 2021
4a89494
Created Interface base Code generation (markdown)
chaowlert Jan 24, 2021
9364b69
Updated Mapster.Tool (markdown)
chaowlert Jan 24, 2021
eaaad71
Created Fluent API Code generation (markdown)
chaowlert Jan 24, 2021
8d84e00
Updated EF 6 & EF Core (markdown)
chaowlert Feb 6, 2021
89f79f8
update what is commented in #302
mhamri Feb 6, 2021
0ab94d9
Updated Object references (markdown)
mhamri Feb 6, 2021
d3f9fab
Updated Attribute base Code generation (markdown)
chaowlert Feb 11, 2021
51b65cd
Updated Mapster.Tool (markdown)
chaowlert Apr 10, 2021
9759d2a
Updated Mapster.Tool (markdown)
chaowlert Apr 12, 2021
c9543fa
Updated Mapster.Tool (markdown)
chaowlert Apr 14, 2021
aaf627a
Updated _Sidebar (markdown)
chaowlert Jun 21, 2021
48db20e
Updates String.Format to string interpolation
billrob Nov 7, 2021
dc8e345
Should be close instead of closed
popemkt Feb 21, 2022
932e15a
Updated Mapster.Tool (markdown)
andrerav Jun 27, 2022
3adbbd9
Add documentation for new overloads with destination parameter
devbased Jun 30, 2022
dcacbd1
Add example for ConstructUsing overload with destination parameter
devbased Jun 30, 2022
ce9de53
Fix a typo
aradalvand Aug 10, 2022
d44f78f
Fix typo (missing method call period)
TehMillhouse Oct 6, 2022
afdd321
Created _Footer (markdown)
almika777 Feb 9, 2023
54e6c53
Destroyed _Footer (markdown)
almika777 Feb 9, 2023
fc7fb16
Created Mapping Configuration With "IMapFrom" Interface (markdown)
stormaref Feb 9, 2023
2aa4148
Updated _Sidebar (markdown)
stormaref Feb 9, 2023
ec6f178
Updated Mapping Configuration With "IMapFrom" Interface (markdown)
stormaref Feb 9, 2023
5d8d342
Updated Custom mapping (markdown)
dialloi659 May 3, 2023
971c5a1
Updated Custom mapping (markdown)
joshslark May 20, 2023
a83925e
Updated _Sidebar (markdown)
PedramShateri Jul 2, 2023
35bb741
Updated _Sidebar (markdown)
PedramShateri Jul 2, 2023
4c8f00e
Updated _Sidebar (markdown)
PedramShateri Jul 2, 2023
9f4881b
Add net8.0 framework moniker and update test-related packages
andrerav Sep 21, 2023
5026e65
Add .net7.0 moniker to Mapster.Tool.Tests.csproj and upgrade the Maps…
andrerav Sep 21, 2023
7f1935c
Upgrade build pipeline to .NET 8. This still won't build until 8.0.x …
andrerav Sep 21, 2023
c504336
Merge pull request #631 from MapsterMapper/feat/dotnet8
andrerav Sep 22, 2023
2f7034d
Update version numbers
andrerav Sep 22, 2023
db8aa28
partial fix issue #537
Sep 24, 2023
88fb018
add FakeRecord
Sep 25, 2023
14a674e
refactoring test
Sep 25, 2023
397d5a4
Updated Mapster.Tool (markdown)
andrerav Sep 26, 2023
9b91b85
Fix From Rewiew
DocSvartz Sep 27, 2023
6838002
fix deleting forgotten comments
DocSvartz Sep 27, 2023
cf55157
Fix Naming_ add [Ignore] from not working test
DocSvartz Sep 27, 2023
1ab9810
remove whitespace and misprint _sourceEmailUpdate
DocSvartz Sep 27, 2023
7445200
Implemented TypeAdapter methods to validate destination props with so…
haritha99ch Oct 8, 2023
794f4fd
Implemented testing for TypeAdapter.ValidateAndAdapt
haritha99ch Oct 8, 2023
636eca0
test check Current Work From ImplicitOperator to Class
DocSvartz Oct 10, 2023
62ab7d6
add Sealed record Detection and Test
DocSvartz Oct 10, 2023
531f0ed
add RecordType identity helper
DocSvartz Oct 10, 2023
f678d12
refactoring and
DocSvartz Oct 15, 2023
9a2cf67
Fix Issue #640
DocSvartz Oct 15, 2023
60878d8
del empty lines
DocSvartz Oct 15, 2023
bb76522
Full work only cast Emun to object
DocSvartz Oct 15, 2023
09a0e92
Merge pull request #634 from DocSvartz/NewRecordDetecton
andrerav Oct 15, 2023
fcd8139
refactoring test
DocSvartz Oct 17, 2023
df2c0ec
Refactoring RecordTypeIdentityHelper
DocSvartz Oct 17, 2023
4f016de
Object To TDestination fixed
DocSvartz Oct 18, 2023
d6d9339
del object update test
DocSvartz Oct 22, 2023
1851925
add Record inline creation function
DocSvartz Oct 22, 2023
dc82e5a
add Test from Inline adapt Function
DocSvartz Oct 22, 2023
e6db0c4
del not Record test
DocSvartz Oct 22, 2023
16b0b0f
Add attribute
DocSvartz Oct 22, 2023
9d622ee
impliment attribute
DocSvartz Oct 22, 2023
0f534a2
drop working Temporary bypass and ignore Not Valide Tests
DocSvartz Oct 22, 2023
11e8a12
clean up
DocSvartz Oct 22, 2023
2af9a2e
cleam not used using
DocSvartz Oct 23, 2023
68cc2b2
add comment
DocSvartz Oct 23, 2023
04255af
Rename Attribute
DocSvartz Oct 23, 2023
a5f9018
reworking tests to check the case specified in the description
DocSvartz Oct 24, 2023
6e7283f
remove CreateBlockExpression section in RecortType Adapter.
DocSvartz Oct 24, 2023
e06f6ed
Remane file and del attribute usage
DocSvartz Oct 26, 2023
218c917
add ReadOnlyInterfaceAdapter
DocSvartz Oct 26, 2023
730d69b
fix
DocSvartz Oct 26, 2023
24d71a3
fix
DocSvartz Oct 26, 2023
db35b17
clean
DocSvartz Oct 27, 2023
b5dc28e
add test
DocSvartz Oct 28, 2023
6215452
impliment in TypeAdaptSettings and TypeAdaptSetter
DocSvartz Oct 28, 2023
6ebac66
Implimentation in BaseAdapter and PrimitiveAdapter
DocSvartz Oct 28, 2023
d7f40a1
refactoring tests
DocSvartz Oct 28, 2023
0eccadc
fix date
DocSvartz Oct 28, 2023
af1f374
date all fix
DocSvartz Oct 28, 2023
00bc359
final refactoring tests and drop comments
DocSvartz Oct 28, 2023
50ade18
Add Projection test
DocSvartz Oct 28, 2023
ca6bf7d
fix #656
SimTsai Dec 15, 2023
b518398
Updated Mapster.Tool (markdown)
qqeekk May 13, 2024
2256369
Added isolated assembly loading for issue #714
boylec Jun 14, 2024
e00c2bb
Added isolated assembly loading for issue #714
boylec Jun 17, 2024
e457bd7
added tv specific nuget stuff
boylec Jun 17, 2024
a8f11eb
added additional assembly to shared assemblies
boylec Jun 17, 2024
7059c71
Merge branch 'development' into fix/isolated-assemblies
boylec Jun 17, 2024
e08566f
Merge pull request #2 from True-Velocity/fix/isolated-assemblies
boylec Jun 17, 2024
86fd5c4
fix
boylec Jun 17, 2024
81af1a7
Updated Basic usages (markdown)
andrerav Jul 21, 2024
c14b57d
Bump TFMs to net9.0
SonnyRR Dec 22, 2024
3cf84e2
Update dotnet version in github workflow
SonnyRR Dec 22, 2024
36f2431
Deprecate net7.0 TFM
SonnyRR Dec 22, 2024
8c7927e
Deprecate net6.0 TFM
SonnyRR Dec 22, 2024
07005f3
Bump NuGet packages
SonnyRR Dec 22, 2024
b0655f8
Re-introduce net8 SDK in gh workflow
SonnyRR Dec 22, 2024
eeaf355
Bump package semvers
SonnyRR Dec 22, 2024
d462da3
Merge pull request #745 from SimTsai/master
andrerav Jan 2, 2025
c62119d
Merge pull request #744 from SonnyRR/chore/bump-tfm-to-net9
andrerav Jan 2, 2025
c8e3320
Delete src/nuget.config
boylec Jan 2, 2025
b944d35
Merge branch 'development' into fix/isolated-assemblies
boylec Jan 2, 2025
1457dce
Merge pull request #716 from True-Velocity/fix/isolated-assemblies
andrerav Jan 2, 2025
710fc2b
Merge pull request #650 from DocSvartz/CustomMappingPrimitivePublish
andrerav Jan 2, 2025
14cc8c4
Merge pull request #641 from haritha99ch/ValidateAndAdapt/tests
andrerav Jan 2, 2025
0e4c3b8
Merge pull request #643 from DocSvartz/NullableEmuninParamFix
andrerav Jan 2, 2025
bdfe266
Merge pull request #646 from DocSvartz/add-asRecord-Attribute
andrerav Jan 2, 2025
baedf16
Merge pull request #649 from DocSvartz/add-InterfaceNonPublicSetterAd…
andrerav Jan 2, 2025
cd6ebe5
fix merge conflicts from PR #645
DocSvartz Jan 3, 2025
3bf9e6b
Merge pull request #645 from DocSvartz/ObjectModFix
andrerav Jan 3, 2025
cea3deb
Fix issue #672
DocSvartz Jan 4, 2025
4deea1a
add mapping init PropertyTest
DocSvartz Jan 4, 2025
a8baff8
add Constract Using Test
DocSvartz Jan 4, 2025
c620ed9
Merge pull request #753 from DocSvartz/Fix-Init-property-in-derived-c…
andrerav Jan 6, 2025
2c430e9
fix regression in interfaces mapping
lofcz Jan 7, 2025
93a2d3f
Fix issue #755 - revert to behavior from 7.4.0
DocSvartz Jan 10, 2025
4241342
fix comment
DocSvartz Jan 11, 2025
a4bda38
fix nullable map to target regression
DocSvartz Jan 13, 2025
b0d37ce
Merge pull request #756 from lofcz/fix-interface-regression
andrerav Jan 13, 2025
425a7a9
Merge pull request #759 from DocSvartz/fix-null
andrerav Jan 13, 2025
b9d403f
Merge branch 'development' into fix-interfaces-map-regression
DocSvartz Jan 13, 2025
44b078c
Update version numbers.
andrerav Jan 13, 2025
155a723
Merge pull request #758 from DocSvartz/fix-interfaces-map-regression
andrerav Jan 13, 2025
623f940
add Ignor Ctor Param
DocSvartz Jan 21, 2025
5e9b8df
add Test
DocSvartz Jan 21, 2025
0685bb3
refactoring algorithm
DocSvartz Jan 22, 2025
fdf059a
add supporting Ignored() to readonly interface
DocSvartz Jan 22, 2025
6cf1320
add test Interface Ctor param Ignored()
DocSvartz Jan 22, 2025
7f6cdde
fix misprints
DocSvartz Jan 22, 2025
0f2302a
fix maToTarget behavior From RecordType
DocSvartz Jan 23, 2025
f8469e9
add To RecordTypeAdapter
DocSvartz Jan 23, 2025
d02756f
fix mapToTarget test from Record
DocSvartz Jan 23, 2025
15e710d
merge
DocSvartz Jan 24, 2025
564da6d
fix map to target from recordType
DocSvartz Jan 24, 2025
f29d935
update RecordType Tests
DocSvartz Jan 25, 2025
0c5384d
refactoring Map to target record
DocSvartz Jan 28, 2025
f5a3ce6
Fix error with Using Destination Value From Record Type
DocSvartz Jan 28, 2025
5c2d4a7
add Null check destination from mapToTarget RecordType
DocSvartz Feb 2, 2025
32f0a34
add support from RecordType
DocSvartz Feb 2, 2025
0711eb8
add Test for RecordType check
DocSvartz Feb 2, 2025
892c42f
fix null Check
Feb 3, 2025
23a5089
fix IgnoreNullValues for RecordType when used Map mapping
DocSvartz Feb 3, 2025
5a5623b
FIx RequiredProperty
DocSvartz Feb 26, 2025
1cba2fd
Temporary disable for RecordType
DocSvartz Feb 26, 2025
cecfa4f
Use actual types for mapping when configuring
JMolenkamp Feb 27, 2025
2f8d20b
Add test for mapping to dictionary with key containing periods
JMolenkamp Feb 27, 2025
851d491
Allow mapping to dictionary key containing periods
JMolenkamp Feb 27, 2025
b45ef61
Add tests for mapping members containing periods
JMolenkamp Feb 27, 2025
d8f7693
Allow properties or fields to contain periods
JMolenkamp Mar 4, 2025
8d1c7cb
fix MapToTarget Polymorphic mapping to null value Property
DocSvartz May 2, 2025
e64dd8a
Fix when using applySettings: true
DocSvartz May 2, 2025
0ea08a3
refactoring and drop MapWithPrimitive
DocSvartz May 2, 2025
0aa9290
Improve nullability annotations on the Adapt extension method
hmoratopcs May 5, 2025
d198ef2
add support using MapWith as param in UseDestinatonValue
DocSvartz Jan 19, 2025
49576a5
refactoring test
DocSvartz Jan 19, 2025
dbd6f37
update algoritm
DocSvartz Jan 20, 2025
343874f
Fix Poco Detection for Class
DocSvartz Jan 26, 2025
9a210bd
add RequireExplicitMappingPrimitive config
DocSvartz Mar 22, 2025
ea2da89
add Test for RequireExplicitMappingPrimitive
DocSvartz Mar 22, 2025
2986140
add EFCoreProjectToType and base test
Apr 7, 2025
0e27928
Fix Mapping Hidden Base member
DocSvartz Apr 13, 2025
a00dfa8
Add support .Inherits() and .Include() to map OpenGeneric
DocSvartz Apr 12, 2025
d75579d
IgnoreNonMapped skip RequireDestinationMemberSource
DocSvartz Jan 23, 2025
3553d25
IgnoreNonMapped mark not mapping memeber as Ignore
DocSvartz Apr 14, 2025
f647867
NullableExpressionVisitor improvement
DocSvartz Apr 9, 2025
4ace877
add Simply Async mapping
DocSvartz Jun 13, 2025
444fedf
Polymorfing Map toTarget
DocSvartz Jun 17, 2025
3653ba4
fix merge
DocSvartz Jun 17, 2025
d23b2b7
fix IgnoreNullValues for RecordType when used Map mapping
DocSvartz Feb 3, 2025
2de0109
Fix Name Ctor param Matching
DocSvartz Feb 11, 2025
a70694c
fix IgnoreNullValues for RecordType when used Map mapping
DocSvartz Jun 17, 2025
7fc6842
Created _Footer (markdown)
Eftiand Jul 2, 2025
965fc23
fix class SetValueByReflection
DocSvartz Jul 10, 2025
98ef536
Updated _Footer (markdown)
Hopcos Aug 5, 2025
05b5d3c
Updated _Footer (markdown)
Hopcos Aug 5, 2025
b850763
Updated _Footer (markdown)
Exzept1on Aug 8, 2025
ceb6aa1
Updated _Footer (markdown)
jbefus Aug 9, 2025
8586a4c
add constructor param null checker
DocSvartz Sep 29, 2025
c8955bd
Merge pull request #814 from DocSvartz/Alpha-9-1
DocSvartz Sep 30, 2025
514a0a5
Merge pull request #815 from MapsterMapper/v-9-1-0
DocSvartz Sep 30, 2025
790945b
Merge pull request #779 from JMolenkamp/fix-failing-test
DocSvartz Sep 30, 2025
99c624f
Merge pull request #780 from JMolenkamp/fix-dictionary-key-with-periods
DocSvartz Sep 30, 2025
3a92a3d
Merge pull request #781 from JMolenkamp/feat-map-members-containing-p…
DocSvartz Sep 30, 2025
26407ec
Merge pull request #800 from hmoratopcs/patch-1
DocSvartz Sep 30, 2025
ff7a645
Merge pull request #808 from DocSvartz/Fix-Init-member
DocSvartz Sep 30, 2025
e815782
Merge pull request #799 from DocSvartz/Fix--MapToTargetPrimitive
DocSvartz Sep 30, 2025
704d9eb
fix confict
DocSvartz Sep 30, 2025
a2a19f1
Restore
DocSvartz Sep 30, 2025
9984029
Merge pull request #817 from DocSvartz/Add-Ctor-nullable-param-fix-pu…
DocSvartz Sep 30, 2025
10ab428
Updated version numbers to 9.0.0-pre01.
andrerav Sep 30, 2025
c9d0608
Merge pull request #818 from MapsterMapper/andrerav/update-version
andrerav Sep 30, 2025
378f5da
Updated Mapster.Tool (markdown)
andrerav Sep 30, 2025
ec260ee
Destroyed _Footer (markdown)
MaRokas2005 Oct 15, 2025
41ab04b
Disable NullableEnumFix #643 from MapToProjection cases
DocSvartz Oct 15, 2025
156c496
Merge pull request #822 from DocSvartz/Fix-Nullable-Enum-Regression
DocSvartz Oct 15, 2025
08cece9
Mapster.EF.Core: Add type check for IAsyncEnumerable<>
ScarletKuro Oct 14, 2025
64935a5
Merge pull request #823 from ScarletKuro/development
DocSvartz Oct 17, 2025
59c74ae
refactoring support .Inherits() and .Include() to map OpenGenerics
DocSvartz Oct 17, 2025
7d40d57
Merge pull request #824 from DocSvartz/Refactoring-Inherits-and-Inclu…
DocSvartz Oct 17, 2025
f2cc814
Update Fix #811
DocSvartz Oct 20, 2025
6a81c81
Merge pull request #825 from DocSvartz/update---Fix-#811
DocSvartz Oct 20, 2025
be53c53
Add Adapt extensions with temporary TypeAdapterConfig and TypeAdapter…
Nov 25, 2025
1c2ee28
use TypeAdapterConfig.GlobalSettings.Clone() as base config
Nov 26, 2025
a009eff
use config.ForType insted of config.NewConfig
Nov 26, 2025
9103951
Merge pull request #828 from roohial57/development
DocSvartz Nov 29, 2025
c4d3e8d
rename without quotes
Dec 2, 2025
3dd2a01
remove quotes from sidebar link
Dec 2, 2025
92b5310
Add 'wiki/' from commit '3dd2a01eab09de6e8a5fe37047fc04c5a27753b3'
DevTKSS Dec 3, 2025
61d63b1
docs(wiki): Import wiki into repository files
DevTKSS Dec 3, 2025
24ccdbc
docs(api): add api folder with required contents to build api referen…
DevTKSS Dec 3, 2025
f22da79
docs: Add yaml headers with uid to markdown files and create appropri…
DevTKSS Dec 3, 2025
b3ab496
docs: FIx markdownlint, apply xref links and update header levels
DevTKSS Dec 3, 2025
46ae282
chore(docs): Add docfx setup and files for spellcheck and markdownlint
DevTKSS Dec 3, 2025
76c944a
chore: adjust path
DevTKSS Dec 3, 2025
47bbb36
chore: link updates
DevTKSS Dec 3, 2025
8d34b75
chore: Update docs fix links
DevTKSS Dec 8, 2025
9793c2d
chore: logo needs to be a relative path, no cloud source allowed
DevTKSS Dec 8, 2025
9ecbe78
chore: comment out api docs metadata generation and toc node for this
DevTKSS Dec 8, 2025
ced7ee0
docs: intendations, sorting TOC and re-add temp Reference
DevTKSS Dec 9, 2025
fe099c1
chore: Match paths, add Reference TOC entry, add yaml header to index…
DevTKSS Dec 9, 2025
65927c4
chore: Introduce .vscode settings file associations for docfx as json…
DevTKSS Dec 9, 2025
28812a5
docs(Reference): Add agent prompts for csharp xml doc generation
DevTKSS Dec 9, 2025
4b21f6e
ci(docs): Add docs deployment workflow
DevTKSS Dec 9, 2025
46422aa
ci: Add conventional-commits workflow
DevTKSS Dec 9, 2025
80bdf7d
chore: Add initial Contributing guidelines
DevTKSS Dec 9, 2025
8fd6442
docs(automation): Add powershell scripts to simplify local docfx clea…
DevTKSS Dec 9, 2025
1e000af
chore: Merge remote-tracking branch 'origin/development' into docs/ad…
DevTKSS Dec 9, 2025
e2d6f53
chore: add and reference new scaled Mapster logo
DevTKSS Dec 11, 2025
8b9dd1b
chore: update Testing Guidelines with MSTest
DevTKSS Dec 11, 2025
1f970d3
chore(nuget): Add Table with all Mapster provided NuGet Packages
DevTKSS Dec 11, 2025
0ea68ea
chore: Update paths, add svg extension to docfx resources
DevTKSS Dec 11, 2025
db4bfae
docs: Migrate Mapster Docs from wiki to docfx
DevTKSS Dec 13, 2025
b167649
feat(bench): add benchmark to development
DocSvartz Dec 14, 2025
bf15fa4
chore: Add Benchmark.Development
DocSvartz Dec 14, 2025
865d695
fix: Map To Target Null regression
DocSvartz Dec 15, 2025
ce4b870
chore: fix Map To Target Null regression
DocSvartz Dec 15, 2025
3c77472
feat(bench): add in benchmark reference to dev mapster
DocSvartz Dec 15, 2025
278a9a9
chore: Add in benchmark reference to dev mapster
DocSvartz Dec 21, 2025
1abcb04
chore!: retarget to netstandard2.0
DocSvartz Dec 22, 2025
0d00194
chore: target to net10
DocSvartz Dec 22, 2025
538f8c9
chore(version): Updated version numbers to 10.0.0-pre01
DocSvartz Dec 22, 2025
40de2b0
fix: SignAssembly Mapster
DocSvartz Dec 28, 2025
1b0a148
fix(test): add IsTestProject project property
DocSvartz Dec 29, 2025
26d33cc
chore: Merge pull request #841 from DocSvartz/10-pre
DocSvartz Dec 31, 2025
28a13ca
feat: add class Ctor AutoMapping by default
DocSvartz Dec 31, 2025
82aa199
fix(test): add test with Insaider memeber using custom ctor
DocSvartz Jan 1, 2026
b3c94dc
fix(test): fix misprints
DocSvartz Jan 1, 2026
aa61244
feat: add AutoProperty without setter automapping when MapToTarget cases
DocSvartz Jan 1, 2026
78b802a
chore: Merge pull request #844 from DocSvartz/add-class-auto-ctor-map…
DocSvartz Jan 4, 2026
689850f
Merge branch 'master' into development
DocSvartz Jan 5, 2026
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
63 changes: 63 additions & 0 deletions .github/prompts/csharp-docs.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
---
agent: 'agent'
tools: ['changes', 'search/codebase', 'edit/editFiles', 'problems']
description: 'Ensure that C# types are documented with XML comments and follow best practices for documentation.'
---

# C# Documentation Best Practices

- Public members should be documented with XML comments.
- It is encouraged to document internal members as well, especially if they are complex or not self-explanatory.

## Guidance for all APIs

- Use `<summary>` to provide a brief, one sentence, description of what the type or member does. Start the summary with a present-tense, third-person verb.
- Use `<remarks>` for additional information, which can include implementation details, usage notes, or any other relevant context.
- Use `<see langword>` for language-specific keywords like `null`, `true`, `false`, `int`, `bool`, etc.
- Use `<c>` for inline code snippets.
- Use `<example>` for usage examples on how to use the member.
- Use `<code>` for code blocks. `<code>` tags should be placed within an `<example>` tag. Add the language of the code example using the `language` attribute, for example, `<code language="csharp">`.
- Use `<see cref>` to reference other types or members inline (in a sentence).
- Use `<seealso>` for standalone (not in a sentence) references to other types or members in the "See also" section of the online docs.
- Use `<inheritdoc/>` to inherit documentation from base classes or interfaces.
- Unless there is major behavior change, in which case you should document the differences.

## Methods

- Use `<param>` to describe method parameters.
- The description should be a noun phrase that doesn't specify the data type.
- Begin with an introductory article.
- If the parameter is a flag enum, start the description with "A bitwise combination of the enumeration values that specifies...".
- If the parameter is a non-flag enum, start the description with "One of the enumeration values that specifies...".
- If the parameter is a Boolean, the wording should be of the form "`<see langword="true" />` to ...; otherwise, `<see langword="false" />`.".
- If the parameter is an "out" parameter, the wording should be of the form "When this method returns, contains .... This parameter is treated as uninitialized.".
- Use `<paramref>` to reference parameter names in documentation.
- Use `<typeparam>` to describe type parameters in generic types or methods.
- Use `<typeparamref>` to reference type parameters in documentation.
- Use `<returns>` to describe what the method returns.
- The description should be a noun phrase that doesn't specify the data type.
- Begin with an introductory article.
- If the return type is Boolean, the wording should be of the form "`<see langword="true" />` if ...; otherwise, `<see langword="false" />`.".

## Constructors

- The summary wording should be "Initializes a new instance of the <Class> class [or struct].".

## Properties

- The `<summary>` should start with:
- "Gets or sets..." for a read-write property.
- "Gets..." for a read-only property.
- "Gets [or sets] a value that indicates whether..." for properties that return a Boolean value.
- Use `<value>` to describe the value of the property.
- The description should be a noun phrase that doesn't specify the data type.
- If the property has a default value, add it in a separate sentence, for example, "The default is `<see langword="false" />`".
- If the value type is Boolean, the wording should be of the form "`<see langword="true" />` if ...; otherwise, `<see langword="false" />`. The default is ...".

## Exceptions

- Use `<exception cref>` to document exceptions thrown by constructors, properties, indexers, methods, operators, and events.
- Document all exceptions thrown directly by the member.
- For exceptions thrown by nested members, document only the exceptions users are most likely to encounter.
- The description of the exception describes the condition under which it's thrown.
- Omit "Thrown if ..." or "If ..." at the beginning of the sentence. Just state the condition directly, for example "An error occurred when accessing a Message Queuing API."
77 changes: 77 additions & 0 deletions .github/workflows/build-deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Build and Deploy DocFX

on:
push:
branches: [ 'master' ]
paths:
- 'docs/**'
- 'README.md'
# Uncomment this if API docs changes should trigger a rebuild of the documentation
# - 'src/**'
- '.github/workflows/build-deploy-docs.yml'
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: false

jobs:
build-docs:
if: ${{ github.ref == 'refs/heads/master' }}
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.x
9.x
# - name: Show dotnet version
# run: |
# dotnet --list-sdks
# dotnet --list-runtimes

# - name: Restore dependencies before docs deployment as recommended by docfx
# run: dotnet restore ./src/Mapster.sln

# - name: Build with dotnet
# run: dotnet build ./src/Mapster.sln

# - name: Run tests on .NET 9.0
# run: dotnet test --verbosity normal ./src/Mapster.sln

- name: Install DocFX as .NET tool
run: |
dotnet tool update -g docfx

- name: Build docfx site
working-directory: docs
run: docfx docfx.json

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# Upload entire repository
path: 'docs/_site'

deploy-docs:
needs: build-docs
if: ${{ needs.build-docs.result == 'success' && github.ref == 'refs/heads/master' }}
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest

steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
21 changes: 21 additions & 0 deletions .github/workflows/conventional-commits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Conventional Commits

on:
pull_request:
branches:
- master
- development
- release/*

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
commitsar:
name: Validate for conventional commits
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- name: Run commitsar
uses: aevea/commitsar@v0.20.2
11 changes: 7 additions & 4 deletions .github/workflows/dotnet-buildandtest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,19 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version: 7.0.x
dotnet-version: |
8.x
9.x
10.x
- name: Show dotnet version
run: |
dotnet --list-sdks
dotnet --list-runtimes
- name: Build with dotnet
run: dotnet build ./src/Mapster.sln
- name: Run tests on .NET 7.0
- name: Run tests on .NET 10.0
run: dotnet test --verbosity normal ./src/Mapster.sln
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,9 @@ packages/
# This line needs to be after the ignore of the build folder (and the packages folder if the line above has been uncommented)
!packages/build/

# Not ignore packages folder in docs folder
!docs/articles/packages/

# Windows Azure Build Output
csx/
*.build.csdef
Expand Down Expand Up @@ -181,3 +184,7 @@ project.lock.json
/src/.vs
/.vs
src/.idea

# VS Code settings
.vscode/launch.json
.vscode/tasks.json
16 changes: 16 additions & 0 deletions .markdownlint.jsonc
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"$schema": "https://raw.githubusercontent.com/DavidAnson/markdownlint/v0.38.0/schema/markdownlint-config-schema.json",
"default": true,
"line-length": false,
"commands-show-output": false,
"no-bare-urls": false,
"no-inline-html": false,
"no-duplicate-heading": false,
"no-emphasis-as-heading": false,
// Headers must start at the beginning of the line - false positive in some cases where it makes sense.
"MD023": false,
// First line in a file should be a top-level heading - false positive for include files.
"MD041": false,
// Link fragments should be valid - false positive for docfx tabs
"MD051": false
}
8 changes: 8 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"recommendations": [
"DavidAnson.vscode-markdownlint",
"streetsidesoftware.code-spell-checker-cspell-bundled-dictionaries",
"ms-vscode.powershell",
"joshbolduc.commitlint"
]
}
8 changes: 8 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"files.associations": {
"*.agent.md": "chatagent",
"*.instructions.md": "instructions",
"*.prompt.md": "prompt",
"docfx.json": "jsonc"
}
}
36 changes: 36 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
![Mapster Icon](https://raw.githubusercontent.com/MapsterMapper/Mapster/master/docs/images/mapster-logo.svg)

# Contributing to Mapster

Thank you for your interest in contributing! We welcome contributions from the community.

## How to Contribute

1. **Fork the repository** and create your branch from [`development`](https://github.com/MapsterMapper/Mapster/tree/development)
2. **Make your changes** following the existing code style
3. **Write tests** using [MSTest](https://docs.microsoft.com/en-us/dotnet/core/testing/unit-testing-with-mstest) and [xUnit](https://xunit.net/) to ensure your changes work correctly
4. **Document your code** with XML comments and update [docs/articles/](./docs/articles/) if needed following the [DocFX](https://dotnet.github.io/docfx/) guidelines
5. **Commit with clear messages** following [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) (e.g., `feat:`, `fix:`, `docs:`)
6. **Submit a pull request** with a description of your changes

## Reporting Issues

Found a bug or have a feature request? Please [open an issue](https://github.com/MapsterMapper/Mapster/issues) with:

- Clear description of the problem or request
- Steps to reproduce (for bugs)
- Code samples if applicable
- Environment details (Mapster version, .NET version)

For questions, use [GitHub Discussions](https://github.com/MapsterMapper/Mapster/discussions).

## Development Guidelines

- Follow existing code conventions
- Add XML documentation for public APIs
- Write unit tests for new features and bug fixes
- Keep code clean, well-documented, and tested

## License

By contributing, you agree that your contributions will be licensed under the [MIT License](LICENSE).
Loading
Loading