Skip to content

chore: restructure repository layout, documentation, and contributor guidance#424

Merged
ThomasPe merged 2 commits into
mainfrom
copilot/restructure-repository-and-docs
Apr 7, 2026
Merged

chore: restructure repository layout, documentation, and contributor guidance#424
ThomasPe merged 2 commits into
mainfrom
copilot/restructure-repository-and-docs

Conversation

Copilot AI commented Apr 7, 2026

Copy link
Copy Markdown
Contributor

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.*
  • Solution stays at root

Reference updates

  • WordPressPCL.sln project paths updated to src\… / tests\…
  • src/WordPressPCL/WordPressPCL.csproj — relative paths to README.md, CHANGELOG.md, .editorconfig adjusted for extra nesting level
  • Test .csproj <ProjectReference> updated to ..\..\src\WordPressPCL\WordPressPCL.csproj
  • .github/workflows/publish-nuget.yml and integration-tests.yml paths updated

Docs

  • docs/I version 3.xdocs/v3, docs/II version 2.xdocs/v2, docs/III version 1.xdocs/v1
  • docs/index.md and README.md links updated to new paths
  • mkdocs.yml expanded with a full explicit nav: covering all three version trees (entities + customization subtrees per version)

Contributor guidance

  • Added CONTRIBUTING.md: repo layout map, prerequisites, build commands, self-hosted Docker test instructions, code style, and PR workflow
  • Updated README.md contribution section to reference CONTRIBUTING.md instead of inline prose
  • Added site/ to .gitignore

…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
Copilot AI requested a review from ThomasPe April 7, 2026 12:16
@ThomasPe ThomasPe marked this pull request as ready for review April 7, 2026 12:37
Copilot AI review requested due to automatic review settings April 7, 2026 12:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 under tests/, updating the solution + project references accordingly.
  • Renamed versioned docs folders to docs/v1, docs/v2, docs/v3, updated links, and expanded mkdocs.yml nav.
  • Added CONTRIBUTING.md and 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 .editorconfig at 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.

@ThomasPe ThomasPe merged commit fd27a75 into main Apr 7, 2026
7 checks passed
@ThomasPe ThomasPe deleted the copilot/restructure-repository-and-docs branch April 7, 2026 12:51
@ThomasPe ThomasPe added this to the Version 3.0 milestone Apr 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Restructure the repository and GitHub-facing documentation

3 participants