chore: restructure repository layout, documentation, and contributor guidance#424
Merged
Merged
Conversation
…expanded mkdocs nav Agent-Logs-Url: https://github.com/wp-net/WordPressPCL/sessions/ac04d282-f5a7-4d4e-8b8d-b91b36cf9a07 Co-authored-by: ThomasPe <4225039+ThomasPe@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Restructure the repository and GitHub-facing documentation
chore: restructure repository layout, documentation, and contributor guidance
Apr 7, 2026
ThomasPe
approved these changes
Apr 7, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR restructures the repository into a more conventional layout (src/ + tests/), updates solution/project/workflow references to match, and significantly expands/renames the documentation structure (including a much fuller MkDocs navigation) alongside adding contributor guidance.
Changes:
- Moved library project under
src/WordPressPCL/and test projects undertests/, updating the solution + project references accordingly. - Renamed versioned docs folders to
docs/v1,docs/v2,docs/v3, updated links, and expandedmkdocs.ymlnav. - Added
CONTRIBUTING.mdand adjusted ignore/workflow paths for the new layout.
Reviewed changes
Copilot reviewed 10 out of 191 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| WordPressPCL.sln | Updates project paths to src\ / tests\. |
| tests/WordPressPCL.Tests.Selfhosted/WordPressPCL.Tests.Selfhosted.csproj | Fixes project reference to library under src/. |
| tests/WordPressPCL.Tests.Selfhosted/Utility/UrlHelper_Tests.cs | Adds self-hosted test coverage for URL helper. |
| tests/WordPressPCL.Tests.Selfhosted/Utility/ThreadedCommentsHelper_Tests.cs | Adds self-hosted test for threaded comment ordering. |
| tests/WordPressPCL.Tests.Selfhosted/Utility/HttpHelper_Tests.cs | Adds self-hosted tests around response pre-processing. |
| tests/WordPressPCL.Tests.Selfhosted/Utility/ClientHelper.cs | Adds helper to create authenticated/self-hosted clients for tests. |
| tests/WordPressPCL.Tests.Selfhosted/Utility/ApiCredentials.cs | Adds local self-hosted test credentials/config. |
| tests/WordPressPCL.Tests.Selfhosted/Themes_Tests.cs | Adds themes endpoint self-hosted tests. |
| tests/WordPressPCL.Tests.Selfhosted/Taxonomies_Tests.cs | Adds taxonomies endpoint self-hosted tests. |
| tests/WordPressPCL.Tests.Selfhosted/Tag_Tests.cs | Adds tags endpoint self-hosted tests (CRUD/query). |
| tests/WordPressPCL.Tests.Selfhosted/Settings_Tests.cs | Adds settings endpoint self-hosted tests. |
| tests/WordPressPCL.Tests.Selfhosted/QueryBuilder_Tests.cs | Adds query builder behavior test. |
| tests/WordPressPCL.Tests.Selfhosted/PostTypes_Tests.cs | Adds post types endpoint self-hosted tests. |
| tests/WordPressPCL.Tests.Selfhosted/PostStatuses_Tests.cs | Adds post statuses endpoint self-hosted tests. |
| tests/WordPressPCL.Tests.Selfhosted/PostRevisions_Tests.cs | Adds post revisions endpoint self-hosted tests. |
| tests/WordPressPCL.Tests.Selfhosted/Plugins_Tests.cs | Adds plugins endpoint self-hosted tests (with env fallback). |
| tests/WordPressPCL.Tests.Selfhosted/Pages_Tests.cs | Adds pages endpoint self-hosted tests (CRUD/query). |
| tests/WordPressPCL.Tests.Selfhosted/MimeTypeHelper_Tests.cs | Adds MIME type fallback test. |
| tests/WordPressPCL.Tests.Selfhosted/ListPosts_QueryBuilder_Tests.cs | Adds list-posts query builder test coverage. |
| tests/WordPressPCL.Tests.Selfhosted/jwtauth.runsettings | Adds MSTest runsettings for useful-team JWT plugin. |
| tests/WordPressPCL.Tests.Selfhosted/jwt.runsettings | Adds MSTest runsettings for enrique-chavez JWT plugin. |
| tests/WordPressPCL.Tests.Selfhosted/HttpClient_Tests.cs | Adds tests for custom HttpClient integration. |
| tests/WordPressPCL.Tests.Selfhosted/ExceptionTests.cs | Adds self-hosted exception behavior tests. |
| tests/WordPressPCL.Tests.Selfhosted/Exception_Unexpected_Tests.cs | Adds tests for WPUnexpectedException scenarios. |
| tests/WordPressPCL.Tests.Selfhosted/CustomRequests_Tests.cs | Adds tests for CustomRequest API. |
| tests/WordPressPCL.Tests.Selfhosted/Categories_Tests.cs | Adds categories endpoint self-hosted tests (CRUD/query). |
| tests/WordPressPCL.Tests.Selfhosted/ApplicationPasswords_Tests.cs | Adds application password tests. |
| tests/WordPressPCL.Tests.Hosted/WordPressPCL.Tests.Hosted.csproj | Fixes project reference to library under src/. |
| tests/WordPressPCL.Tests.Hosted/Utility/HttpHelper_Tests.cs | Adds hosted tests for response pre-processing behavior. |
| tests/WordPressPCL.Tests.Hosted/Utility/ClientHelper.cs | Adds hosted client helper. |
| tests/WordPressPCL.Tests.Hosted/Utility/ApiCredentials.cs | Adds hosted test credentials/config placeholders. |
| tests/WordPressPCL.Tests.Hosted/Basic_Tests.cs | Adds hosted smoke tests against a live WordPress instance. |
| src/WordPressPCL/WordPressPCL.csproj | Updates pack/file references for deeper nesting under src/. |
| src/WordPressPCL/Utility/UsersQueryBuilder.cs | Adds users query builder implementation. |
| src/WordPressPCL/Utility/UrlHelper.cs | Adds URL query-string helper extensions. |
| src/WordPressPCL/Utility/ThemesQueryBuilder.cs | Adds themes query builder. |
| src/WordPressPCL/Utility/TaxonomiesQueryBuilder.cs | Adds taxonomies query builder. |
| src/WordPressPCL/Utility/TagsQueryBuilder.cs | Adds tags query builder. |
| src/WordPressPCL/Utility/QueryTextAttribute.cs | Adds query builder attribute for query-string mapping. |
| src/WordPressPCL/Utility/PostsQueryBuilder.cs | Adds posts query builder. |
| src/WordPressPCL/Utility/PluginsQueryBuilder.cs | Adds plugins query builder. |
| src/WordPressPCL/Utility/PagesQueryBuilder.cs | Adds pages query builder. |
| src/WordPressPCL/Utility/JsonStringEnumMemberConverter.cs | Adds System.Text.Json enum converter honoring EnumMember. |
| src/WordPressPCL/Utility/ExcludeQueryTextAttribute.cs | Adds attribute for excluding default query values. |
| src/WordPressPCL/Utility/CustomCapabilitiesJsonConverter.cs | Adds converters for boolean capabilities (0/1 vs bool). |
| src/WordPressPCL/Utility/CommentsQueryBuilder.cs | Adds comments query builder. |
| src/WordPressPCL/Utility/CategoriesQueryBuilder.cs | Adds categories query builder. |
| src/WordPressPCL/Models/Theme.cs | Adds Theme model. |
| src/WordPressPCL/Models/Term.cs | Adds base term model for categories/tags. |
| src/WordPressPCL/Models/Taxonomy.cs | Adds taxonomy model. |
| src/WordPressPCL/Models/Tag.cs | Adds tag model. |
| src/WordPressPCL/Models/Settings.cs | Adds settings model. |
| src/WordPressPCL/Models/PostType.cs | Adds post type model. |
| src/WordPressPCL/Models/PostStatus.cs | Adds post status model. |
| src/WordPressPCL/Models/Plugin.cs | Adds plugin model. |
| src/WordPressPCL/Models/PagedResult.cs | Adds paged result wrapper model. |
| src/WordPressPCL/Models/MediaSize.cs | Adds media size model. |
| src/WordPressPCL/Models/MediaDetails.cs | Adds media details model. |
| src/WordPressPCL/Models/Links.cs | Adds links model. |
| src/WordPressPCL/Models/JWTUser.cs | Adds JWT user DTO. |
| src/WordPressPCL/Models/JWTResponse.cs | Adds JWT response DTO. |
| src/WordPressPCL/Models/JWTPlugin.cs | Adds enum of supported JWT plugins. |
| src/WordPressPCL/Models/JWTData.cs | Adds JWT data DTO. |
| src/WordPressPCL/Models/ImageMeta.cs | Adds image metadata DTO. |
| src/WordPressPCL/Models/Exceptions/WPUnexpectedException.cs | Adds exception type for malformed/non-WP responses. |
| src/WordPressPCL/Models/Exceptions/WPException.cs | Adds WordPress API exception type with request payload. |
| src/WordPressPCL/Models/Embedded.cs | Adds embedded response model. |
| src/WordPressPCL/Models/CommentThreaded.cs | Adds threaded comment model with depth. |
| src/WordPressPCL/Models/Category.cs | Adds category model. |
| src/WordPressPCL/Models/Base.cs | Adds base model with Id. |
| src/WordPressPCL/Models/BadRequest.cs | Adds bad request model. |
| src/WordPressPCL/Models/AvatarURL.cs | Adds avatar URL model. |
| src/WordPressPCL/Models/AuthMethod.cs | Adds enum of authentication methods. |
| src/WordPressPCL/Models/ApplicationPassword.cs | Adds application password model. |
| src/WordPressPCL/Interfaces/IUpdateOperation.cs | Adds update operation interface. |
| src/WordPressPCL/Interfaces/IReadOperation.cs | Adds read operation interface. |
| src/WordPressPCL/Interfaces/IQueryOperation.cs | Adds query operation interface. |
| src/WordPressPCL/Interfaces/IDeleteOperation.cs | Adds delete operation interface. |
| src/WordPressPCL/Interfaces/ICreateOperation.cs | Adds create operation interface. |
| src/WordPressPCL/Interfaces/ICountOperation.cs | Adds count operation interface. |
| src/WordPressPCL/DependencyInjection/WordPressServiceCollectionExtensions.cs | Adds DI integration for typed WordPressClient via IHttpClientFactory. |
| src/WordPressPCL/Client/Themes.cs | Adds themes endpoint client. |
| src/WordPressPCL/Client/Taxonomies.cs | Adds taxonomies endpoint client. |
| src/WordPressPCL/Client/Tags.cs | Adds tags endpoint client. |
| src/WordPressPCL/Client/Settings.cs | Adds settings endpoint client. |
| src/WordPressPCL/Client/PostTypes.cs | Adds post types endpoint client. |
| src/WordPressPCL/Client/PostStatuses.cs | Adds post statuses endpoint client. |
| src/WordPressPCL/Client/PostRevisions.cs | Adds post revisions endpoint client. |
| src/WordPressPCL/Client/Pages.cs | Adds pages endpoint client. |
| src/WordPressPCL/Client/CustomRequest.cs | Adds custom request helper client. |
| src/WordPressPCL/Client/Categories.cs | Adds categories endpoint client. |
| README.md | Updates doc links + contribution section to reference CONTRIBUTING.md. |
| mkdocs.yml | Adds explicit full nav for v1/v2/v3 doc trees. |
| docs/v3/troubleshooting.md | Adds v3 troubleshooting content. |
| docs/v3/index.md | Adds v3 docs landing page. |
| docs/v3/entities/users.md | Adds v3 users docs page. |
| docs/v3/entities/taxonomies.md | Adds v3 taxonomies docs page. |
| docs/v3/entities/tags.md | Adds v3 tags docs page. |
| docs/v3/entities/settings.md | Adds v3 settings docs page. |
| docs/v3/entities/posttypes.md | Adds v3 post types docs page. |
| docs/v3/entities/poststatuses.md | Adds v3 post statuses docs page. |
| docs/v3/entities/posts.md | Adds v3 posts docs page. |
| docs/v3/entities/pages.md | Adds v3 pages docs page. |
| docs/v3/entities/media.md | Adds v3 media docs page. |
| docs/v3/entities/customPostType.md | Adds v3 custom post type docs page. |
| docs/v3/entities/comments.md | Adds v3 comments docs page. |
| docs/v3/entities/categories.md | Adds v3 categories docs page. |
| docs/v3/endpoint-coverage.md | Adds endpoint coverage overview for v3. |
| docs/v3/customization/httpResponsePreProcessing.md | Adds v3 pre-processing docs. |
| docs/v3/customization/customRequest.md | Adds v3 custom request docs. |
| docs/v3/customization/customJsonSerializationSettings.md | Adds v3 System.Text.Json customization docs. |
| docs/v3/customization/customHttpClient.md | Adds v3 HttpClient + DI usage docs. |
| docs/v3/breaking-changes.md | Adds v3 breaking changes page. |
| docs/v2/troubleshooting.md | Adds v2 troubleshooting content. |
| docs/v2/index.md | Adds v2 docs landing page. |
| docs/v2/entities/users.md | Adds v2 users docs page. |
| docs/v2/entities/taxonomies.md | Adds v2 taxonomies docs page. |
| docs/v2/entities/tags.md | Adds v2 tags docs page. |
| docs/v2/entities/settings.md | Adds v2 settings docs page. |
| docs/v2/entities/posttypes.md | Adds v2 post types docs page. |
| docs/v2/entities/poststatuses.md | Adds v2 post statuses docs page. |
| docs/v2/entities/posts.md | Adds v2 posts docs page. |
| docs/v2/entities/pages.md | Adds v2 pages docs page. |
| docs/v2/entities/media.md | Adds v2 media docs page. |
| docs/v2/entities/customPostType.md | Adds v2 custom post type docs page. |
| docs/v2/entities/comments.md | Adds v2 comments docs page. |
| docs/v2/entities/categories.md | Adds v2 categories docs page. |
| docs/v2/customization/httpResponsePreProcessing.md | Adds v2 pre-processing docs. |
| docs/v2/customization/customRequest.md | Adds v2 custom request docs. |
| docs/v2/customization/customJsonSerializationSettings.md | Adds v2 Newtonsoft.Json customization docs. |
| docs/v2/customization/customHttpClient.md | Adds v2 HttpClient docs. |
| docs/v2/breaking-changes.md | Adds v2 breaking changes page. |
| docs/v1/troubleshooting.md | Adds v1 troubleshooting content. |
| docs/v1/index.md | Adds v1 docs landing page. |
| docs/v1/entities/users.md | Adds v1 users docs page. |
| docs/v1/entities/taxonomies.md | Adds v1 taxonomies docs page. |
| docs/v1/entities/tags.md | Adds v1 tags docs page. |
| docs/v1/entities/settings.md | Adds v1 settings docs page. |
| docs/v1/entities/posttypes.md | Adds v1 post types docs page. |
| docs/v1/entities/poststatuses.md | Adds v1 post statuses docs page. |
| docs/v1/entities/posts.md | Adds v1 posts docs page. |
| docs/v1/entities/pages.md | Adds v1 pages docs page. |
| docs/v1/entities/media.md | Adds v1 media docs page. |
| docs/v1/entities/customPostType.md | Adds v1 custom post type docs page. |
| docs/v1/entities/comments.md | Adds v1 comments docs page. |
| docs/v1/entities/categories.md | Adds v1 categories docs page. |
| docs/v1/customization/httpResponsePreProcessing.md | Adds v1 pre-processing docs. |
| docs/v1/customization/customRequest.md | Adds v1 custom request docs. |
| docs/v1/customization/customJsonSerializationSettings.md | Adds v1 Newtonsoft.Json customization docs. |
| docs/v1/customization/customHttpClient.md | Adds v1 HttpClient docs. |
| docs/index.md | Updates main docs index links to v1/v2/v3. |
| CONTRIBUTING.md | Adds contributor guide with layout/build/test instructions. |
| .gitignore | Updates ignore list (intended to add site/). |
| .github/workflows/publish-nuget.yml | Updates NuGet publish workflow project path to src/. |
| .github/workflows/integration-tests.yml | Updates test project + runsettings paths under tests/. |
Comments suppressed due to low confidence (1)
src/WordPressPCL/WordPressPCL.csproj:35
<None Include="..\..\editorconfig" ...>points to a non-existent file (repo has.editorconfigat the root). This will break packing/linking the editorconfig into the project; update the path to..\..\.editorconfig.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The repository had unclear project layout (source and tests at root), unconventional docs folder naming (
I version 3.x, etc.), a minimal mkdocs nav, and no contributor guide — all creating friction for new contributors and consumers.Layout
WordPressPCL/→src/WordPressPCL/WordPressPCL.Tests.*→tests/WordPressPCL.Tests.*Reference updates
WordPressPCL.slnproject paths updated tosrc\…/tests\…src/WordPressPCL/WordPressPCL.csproj— relative paths toREADME.md,CHANGELOG.md,.editorconfigadjusted for extra nesting level.csproj<ProjectReference>updated to..\..\src\WordPressPCL\WordPressPCL.csproj.github/workflows/publish-nuget.ymlandintegration-tests.ymlpaths updatedDocs
docs/I version 3.x→docs/v3,docs/II version 2.x→docs/v2,docs/III version 1.x→docs/v1docs/index.mdandREADME.mdlinks updated to new pathsmkdocs.ymlexpanded with a full explicitnav:covering all three version trees (entities + customization subtrees per version)Contributor guidance
CONTRIBUTING.md: repo layout map, prerequisites, build commands, self-hosted Docker test instructions, code style, and PR workflowREADME.mdcontribution section to referenceCONTRIBUTING.mdinstead of inline prosesite/to.gitignore