Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: suggestion to #18398 #18399

Closed
wants to merge 237 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
237 commits
Select commit Hold shift + click to select a range
d15b5b2
Allow skipSelect blueprints only when one blueprint exists (#17818)
callumbwhyte Jan 20, 2025
7552e31
Allow skipSelect blueprints only when one blueprint exists (#17818)
callumbwhyte Jan 20, 2025
25628a8
Lucene Package Update to Address CVE-2024-43383 (#17942)
amsclark Jan 20, 2025
95eb585
Merge commit from fork
AndyButland Jan 20, 2025
e934a94
build on windows
Zeegaan Jan 20, 2025
e77e9c5
Format sql statement (#17354)
Zeegaan Oct 24, 2024
2161edb
Bump version
Zeegaan Jan 21, 2025
c7d157b
build on ubuntu
Zeegaan Jan 21, 2025
7567990
Add NoopCurrentMemberClaimsProvider so Umbraco can boot without the D…
kjac Jan 21, 2025
a2fd82a
Add NoopCurrentMemberClaimsProvider so Umbraco can boot without the D…
kjac Jan 21, 2025
6bd11bf
Fixes failing front-end unit test to align with new behaviour from PR…
AndyButland Jan 21, 2025
800c169
Merge branch 'release/13.6' of https://github.com/umbraco/Umbraco-CMS…
AndyButland Jan 21, 2025
265cc62
Merge branch 'release/13.6' into v13/dev
AndyButland Jan 21, 2025
0e4f883
Fix create child issue in list view with infinite editor (#13355). (#…
mvennevold Jan 21, 2025
3e87718
Merge branch 'v13/contrib' into v13/dev
AndyButland Jan 21, 2025
1a18d6c
Replaced deprecated navigator.platform with navigator.userAgent for p…
manutdkid77 Jan 21, 2025
edc78a5
Handles migration case where an expected constraint is renamed but th…
AndyButland Jan 22, 2025
64287d7
Merge branch 'release/13.5.3' into release/13.6
Zeegaan Jan 23, 2025
3d253f5
bump version
Zeegaan Jan 23, 2025
160710b
Fix parsing exception for RTEs (#18085)
kjac Jan 23, 2025
8485458
Add clientside validation to webhook events (#18089)
kjac Jan 23, 2025
af662fe
Allowed retrieval of current user configuration when accessing user p…
AndyButland Jan 24, 2025
44bf3b7
Make it possible to reset media picker crops (#18110)
kjac Jan 24, 2025
7850078
Redirect to the published URL when exiting preview (#18114)
kjac Jan 24, 2025
28019e4
Added a check that we have a route before attempting to include it in…
AndyButland Jan 28, 2025
313417c
Tidied up XML header comment in ITagQuery.
AndyButland Jan 28, 2025
bf340cd
fix: remove unused parameters and documentation (#18095)
iOvergaard Jan 28, 2025
f54b603
Added Resharper test assemblies to exclude list on TypeFinder. (#18145)
AndyButland Jan 29, 2025
59a4649
Do not allow editing read-only properties by clicking their labels (#…
kjac Jan 29, 2025
9c6e3ff
Elements level property cache should cache by variation (#18080)
kjac Jan 29, 2025
5d48bc7
Provides an option to remove the inessential version number from the …
AndyButland Jan 29, 2025
ee2d7bb
Excluded tags from trashed content (#18164)
AndyButland Jan 29, 2025
0006a9b
peek error notification element + controller/method
nielslyngsoe Jan 29, 2025
bb73ec6
Set release version
Migaroez Jan 30, 2025
6f9e66d
localizations
nielslyngsoe Jan 30, 2025
7d703cc
peek error modal
nielslyngsoe Jan 30, 2025
2ca4e0e
remove max-height setting from code-block
nielslyngsoe Jan 30, 2025
b9837ac
Optimize Azure pipeline (#17674)
bergmania Nov 29, 2024
32a2bab
todo
nielslyngsoe Jan 30, 2025
69e36a3
fix json display
nielslyngsoe Jan 30, 2025
d1fa73c
Merge branch 'v15/dev' into v15/feature/reworking-error-notifications
nielslyngsoe Jan 30, 2025
343867f
Merge branch 'release/13.6' into v13/dev and version bump
Migaroez Jan 30, 2025
1f49493
Block Grid unsupported block
nielslyngsoe Jan 30, 2025
11e2614
unsupported block list
nielslyngsoe Jan 30, 2025
fe00927
allow passing headline and content string through manifest
madsrasmussen Jan 30, 2025
071d4fb
add clipboard translations
madsrasmussen Jan 30, 2025
1872a9a
add keys to manifest
madsrasmussen Jan 30, 2025
25ca146
handle strings with args in localize controller
madsrasmussen Jan 30, 2025
fe97cbe
add tests
madsrasmussen Jan 30, 2025
4f3e494
translate manifest strings
madsrasmussen Jan 30, 2025
be61dae
export consts
madsrasmussen Jan 30, 2025
c3d510d
add token
madsrasmussen Jan 30, 2025
451810d
add danish translation
madsrasmussen Jan 30, 2025
90c66f6
translate confirm label
madsrasmussen Jan 30, 2025
9827cfd
Update localization.controller.ts
madsrasmussen Jan 30, 2025
be7fe21
add timeouts
madsrasmussen Jan 30, 2025
42dbfbe
rename to message
madsrasmussen Jan 31, 2025
0c6bef0
add comment
madsrasmussen Jan 31, 2025
8219d1d
Merge branch 'v15/dev' into v15/bugfix/18000
nielslyngsoe Jan 31, 2025
412fe69
lint fixes
nielslyngsoe Jan 31, 2025
c7da283
simplify args
madsrasmussen Jan 31, 2025
415b1a2
no need to localize headline here
madsrasmussen Jan 31, 2025
4dfe421
format translations
madsrasmussen Jan 31, 2025
d4cfe4d
Merge pull request #18183 from umbraco/15.2/hotfix/clipboard-delete-c…
nielslyngsoe Jan 31, 2025
147bdf2
Use variant context for determining requested culture (#18176)
kjac Jan 31, 2025
7a2d6b6
More robust resolving of Delivery API redirects (#18160)
kjac Jan 31, 2025
17615f9
Fix out of memory of 2gb+ (max 4gb) error introduced by #14657 SVG xs…
TimBoonstra Jan 31, 2025
5dfff21
Update auth.element.ts (#18192)
garpunkal Jan 31, 2025
7dc6e3e
Merge branch 'v13/dev' into v13/contrib
AndyButland Jan 31, 2025
0b7ed5d
make sure to trigger validation system by using super.value
nielslyngsoe Jan 31, 2025
ae540f6
correcting logic
nielslyngsoe Jan 31, 2025
2365906
no need to run validators when we already do so on update
nielslyngsoe Jan 31, 2025
09072b6
correct initial value set and remove private version
nielslyngsoe Jan 31, 2025
2fe2b46
communicate with console error if it fails
nielslyngsoe Jan 31, 2025
2cdcacb
V15/feature/notification-whitespace (#18190)
iOvergaard Jan 31, 2025
40f671d
Merge branch 'v15/dev' into v15/bugfix/18000
nielslyngsoe Jan 31, 2025
ce7c6e0
Revert "correct initial value set and remove private version"
nielslyngsoe Jan 31, 2025
317cc5c
Reapply "correct initial value set and remove private version"
nielslyngsoe Jan 31, 2025
0ae33f8
Revert "Reapply "correct initial value set and remove private version""
nielslyngsoe Jan 31, 2025
89219d8
Revert "no need to run validators when we already do so on update"
nielslyngsoe Jan 31, 2025
13bcf16
revert
nielslyngsoe Jan 31, 2025
9f35717
Enforce user start nodes for media uploads through the RTE (#18204)
kjac Feb 3, 2025
ee231c7
Corrects filename label on the Upload File component (#18205)
leekelleher Feb 3, 2025
e741124
Show notifications menu only to users with permission for the feature…
AndyButland Feb 3, 2025
f1cdf50
V15: Show server configuration when configuring the Upload Field (#18…
iOvergaard Feb 3, 2025
058f901
V15/feature/toggle property editor UI (#18171)
Welander1994 Feb 3, 2025
02b3ec4
Merge branch 'v15/dev' into v15/bugfix/18000
nielslyngsoe Feb 3, 2025
ebad05a
validation for Block Type Configurations
nielslyngsoe Feb 3, 2025
81be464
added comment
nielslyngsoe Feb 3, 2025
1e5bfd8
Feature: Media Type Create Options (#18196)
madsrasmussen Feb 3, 2025
1f4b3e2
V15: Add progress UI to the Upload Field property editor (#18188)
iOvergaard Feb 3, 2025
fc8ae20
Localize reference block labels and properties in the block editing e…
AndyButland Feb 3, 2025
ee51f2a
Merge pull request #18194 from umbraco/v15/bugfix/17206
nielslyngsoe Feb 3, 2025
6aaa9d8
Corrected rendering of member type icons on create button and picker …
AndyButland Feb 3, 2025
deca4c8
Merge pull request #18182 from umbraco/v15/bugfix/18000
nielslyngsoe Feb 3, 2025
b4a9dc0
V13: Fix members while using basic auth. (#18206)
nikolajlauridsen Feb 3, 2025
1c68e3d
Added deliveries workspace view to the webhook details workspace (#18…
AndyButland Feb 4, 2025
52aa18c
V15 QA Added acceptance tests to verify the SVG thumbnail (#17966)
nhudinh0309 Feb 4, 2025
2422a02
Set Smidge cachebuster type (#18198)
SimonHartfield Feb 4, 2025
9c5768e
Deprecate get unique param on UmbPickerInputContext and UmbRepository…
madsrasmussen Feb 4, 2025
6620aca
Cache null dictionary values by key (#15576)
callumbwhyte Feb 4, 2025
cfb0fc2
Merge branch 'v13/dev' into v13/contrib
AndyButland Feb 4, 2025
14b8eee
RTE TinyMCE: Compares previous value in `#onChange` event (#18219)
leekelleher Feb 4, 2025
e034a64
Update src/Umbraco.Web.UI.Client/src/packages/core/notification/extra…
nielslyngsoe Feb 4, 2025
cab07ba
Update src/Umbraco.Web.UI.Client/src/packages/core/notification/modal…
nielslyngsoe Feb 4, 2025
97046b9
Update src/Umbraco.Web.UI.Client/src/packages/core/notification/contr…
nielslyngsoe Feb 4, 2025
c73cc46
invalid binding for grid
nielslyngsoe Feb 4, 2025
c8bdc99
move prop
nielslyngsoe Feb 4, 2025
49c4a60
block-type element type not found
nielslyngsoe Feb 4, 2025
ce2f50c
update status logic
nielslyngsoe Feb 4, 2025
cbd1748
append error with reload
nielslyngsoe Feb 4, 2025
b4e59de
Merge branch 'v15/dev' into v15/feature/block-type-element-not-found
nielslyngsoe Feb 4, 2025
079c770
Merge branch 'v15/dev' into v15/feature/block-grid-block-type-validation
nielslyngsoe Feb 4, 2025
c741ba2
remove responsibility to retrieving block type
nielslyngsoe Feb 4, 2025
00b92d8
tsc corrections
nielslyngsoe Feb 4, 2025
acb3f01
revert
nielslyngsoe Feb 4, 2025
c0a215b
isAllowed impl
nielslyngsoe Feb 4, 2025
ec48503
style update
nielslyngsoe Feb 4, 2025
6249ac9
bump version.json
Zeegaan Feb 5, 2025
67a66cb
Bugfix: Reload recycle bin on trashed entity (#18228)
madsrasmussen Feb 5, 2025
095a731
Review: Allow Duplicate Email for Members (#16202)
jasont0101 Feb 5, 2025
664d68e
Decimal `umb-property-editor-ui-number` fixes (#18233)
leekelleher Feb 5, 2025
e2fd2af
mark options as deprecated and avoid lint issue on the argument not used
nielslyngsoe Feb 5, 2025
42e7b37
Renamed URL picker document link to content (more familiar to editors…
AndyButland Feb 5, 2025
41b7696
Make invariant variant merge for blocks capable of detecting sub layo…
Migaroez Feb 5, 2025
fa9ae32
Update build and contributing docs (#18223)
AndyButland Feb 5, 2025
f2944b0
correct manifest (#18237)
nielslyngsoe Feb 5, 2025
57c3279
Merge branch 'release/15.2' into v15/dev and bump version
Migaroez Feb 6, 2025
82fcede
Management API authorization for requests to rollback. (#18240)
AndyButland Feb 6, 2025
deeeaf4
Creating a Template via a new DocType (#18247)
leekelleher Feb 6, 2025
460c0b3
change order of Acceptance Test scripts
nielslyngsoe Feb 6, 2025
1aa177f
Merge branch 'v15/dev' into v15/feature/reworking-error-notifications
nielslyngsoe Feb 6, 2025
a639fe0
Merge branch 'v15/dev' into v15/feature/block-type-element-not-found
nielslyngsoe Feb 6, 2025
d27b037
Merge branch 'v15/dev' into v15/feature/block-grid-block-type-validation
nielslyngsoe Feb 6, 2025
280cb7f
Fix issues in newly added buttongroup localization (#18254)
Migaroez Feb 7, 2025
62f4666
Remove the hard upper limit for SQL write lock timeout (#18260)
kjac Feb 7, 2025
4ca68d6
Add client-side validation for RTE (#18257)
nielslyngsoe Feb 7, 2025
6df7ff4
replace temp event hack with context and skipHost (#18242)
madsrasmussen Feb 7, 2025
ad02cab
Merge branch 'v15/dev' into v15/feature/reworking-error-notifications
nielslyngsoe Feb 7, 2025
25a3788
V15 QA Fixing the acceptance tests for Create Option due to UI change…
nhudinh0309 Feb 10, 2025
f14922b
Adds name and description to webhooks (#18217)
AndyButland Feb 10, 2025
a3b77cf
Add validation to prevent update of a user or member to an invalid us…
AndyButland Feb 10, 2025
8f6d1bc
Add validation to prevent update of a user or member to an invalid us…
AndyButland Feb 10, 2025
978a068
V15 QA Updated acceptance tests for Link Picker (#18231)
nhudinh0309 Feb 10, 2025
026e80e
Avoid an exception on sign out when the principal is populated from a…
AndyButland Feb 10, 2025
37cc67c
use fewer redirects (#18271)
nielslyngsoe Feb 10, 2025
4d931e5
Fix: #18209 (#18276)
nielslyngsoe Feb 10, 2025
3724a45
Picker search result item icons for Documents and Members (#18250)
leekelleher Feb 10, 2025
1663bc4
V15 QA Added acceptance tests for the content with block list and blo…
nhudinh0309 Feb 11, 2025
f30e6cf
Prevents folder selection in media picker when used from the multi UR…
AndyButland Feb 11, 2025
15cba0a
feat: bump minimum required node.js version from 20 to 22 and remove …
iOvergaard Feb 11, 2025
bb47b7e
bump version
Zeegaan Feb 11, 2025
649cfca
Custom Partial variancy support for RTE as it uses a wrapped model (#…
Migaroez Feb 11, 2025
7bcbc74
URL encodes member user names when passing information for public acc…
AndyButland Feb 11, 2025
7949a5b
V15 QA added clipboard acceptance tests (#18245)
andr317c Feb 11, 2025
6e20e14
V15/feature/history cleanup localization (#18295)
AnnicaF Feb 11, 2025
5ee351a
Added $type to ReferenceResponseModels (#18293)
Migaroez Feb 11, 2025
048f8bc
Fixed userResource request to get all users. (#18105)
AndyButland Feb 11, 2025
ea3e761
Merge branch 'v15/dev' into v15/feature/block-grid-block-type-validation
nielslyngsoe Feb 11, 2025
ac53a6d
Merge branch 'v15/dev' into v15/feature/reworking-error-notifications
nielslyngsoe Feb 11, 2025
fdfbd5f
Merge branch 'v15/dev' into v15/feature/block-type-element-not-found
nielslyngsoe Feb 11, 2025
a282cc5
Backport use of thread delay over sleep and handle dispose in FileSys…
AndyButland Feb 12, 2025
5322d0f
Bumped version to 13.8.0-rc.
AndyButland Feb 12, 2025
f906d28
Fix: #18272 (#18300)
nielslyngsoe Feb 12, 2025
3d84003
Feature: workspace action additional options ellipsis (#18299)
nielslyngsoe Feb 12, 2025
9c62160
Fix: #17676 (#18298)
nielslyngsoe Feb 12, 2025
64efd73
Update peek-error.controller.ts
madsrasmussen Feb 12, 2025
db49fb3
Merge branch 'v15/dev' into v15/feature/reworking-error-notifications
madsrasmussen Feb 12, 2025
ac522ab
Merge pull request #18172 from umbraco/v15/feature/reworking-error-no…
nielslyngsoe Feb 12, 2025
59c2205
Split force for publish descendants into separate options for publish…
AndyButland Feb 12, 2025
ead29a2
Merge pull request #18221 from umbraco/v15/feature/block-type-element…
nielslyngsoe Feb 12, 2025
9227517
Split force for publish descendants into separate options for publish…
AndyButland Feb 12, 2025
8c2b1eb
V13: Introduce publishNotifications method on IMembershipMemberServic…
Zeegaan Feb 12, 2025
5f9b192
fix peek error circular reference (#18307)
nielslyngsoe Feb 12, 2025
a7bd578
Prevent saving or publishing not created variants (#18312)
nielslyngsoe Feb 13, 2025
edeac44
V15 QA Added acceptance tests for Create options (#18314)
nhudinh0309 Feb 13, 2025
b360762
V15 QA disabled SQLite test workers for acceptance tests (#18306)
andr317c Feb 13, 2025
c530342
Feature: Entity Item Ref Extension (#18265)
madsrasmussen Feb 13, 2025
3b7a768
Update picker-search-result-item-element-base.ts (#18308)
madsrasmussen Feb 13, 2025
d1dc453
Resolves issues related to the setting of a schedule for content publ…
AndyButland Feb 13, 2025
8ea58c1
Make all smoke tests run in the pipeline (#18316)
nhudinh0309 Feb 13, 2025
ee05e5d
Removes collection action state (#18212)
madsrasmussen Feb 13, 2025
fde0054
Removing the `propertyEditorSchemaAlias` for "Accepted Upload Types" …
leekelleher Feb 13, 2025
d023ae3
Help Header App, code tidy-up
leekelleher Feb 13, 2025
2cfc4af
Content dashboard, CSS tweaks
leekelleher Feb 13, 2025
b38ef14
LinkedIn icon, adds `currentColor` fill (#18322)
leekelleher Feb 14, 2025
fe7db00
Property actions: adds localization support (#18323)
leekelleher Feb 14, 2025
66cf087
Code Editor Modal, adds localization support (#18325)
leekelleher Feb 14, 2025
2ae903e
V15 QA fixed failing nightly acceptance tests (#18340)
andr317c Feb 14, 2025
5379fec
Data Type create option description (#18338)
leekelleher Feb 14, 2025
8bbe053
Close active modal if its begin unregistered (#18285)
nielslyngsoe Feb 17, 2025
a6e8b23
Fixes broken stories/test.
leekelleher Feb 17, 2025
a485194
V15: Show duration on time displays (#18341)
iOvergaard Feb 17, 2025
89d4563
V15: Add a button to clear schedule (#18339)
iOvergaard Feb 17, 2025
8f9c8cb
Allow for multiple backoffice hosts (#18302)
kjac Feb 17, 2025
def7ebd
Html encodes the user's name in the invite email. (#18343)
AndyButland Feb 17, 2025
69e251a
Adding additional document collection properties to align model with …
AndyButland Feb 17, 2025
18047a7
Only filter post retrieval of entities for start nodes if working wit…
AndyButland Feb 17, 2025
db1d999
Avoid exception when attempting to find member by Id when Id is not a…
AndyButland Feb 17, 2025
c76d764
V15: Only cache items if all ancestors are published (#18337)
nikolajlauridsen Feb 17, 2025
8bbb12d
generate server models + fix client
madsrasmussen Feb 17, 2025
d87a84b
Loosen the RTEValue datacontract to improve migrations (#18349)
Migaroez Feb 17, 2025
e753e2c
Markdown Editor: adds "Default value" support (#18326)
leekelleher Feb 17, 2025
ed63f27
V15: Save the variant before scheduling (#18344)
iOvergaard Feb 17, 2025
9e7a368
Merge branch 'v13/dev' into v14/dev
Migaroez Feb 17, 2025
82d13b5
Limit referenced-by document and media endpoints to references only. …
AndyButland Feb 18, 2025
01fc599
Merge branch 'v14/dev' into v15/dev
Migaroez Feb 18, 2025
50b891a
Updates Tiptap mock data
leekelleher Feb 17, 2025
9e0614f
Tiptap: relocated the Block extension
leekelleher Feb 17, 2025
a9f9cd7
Merge branch 'v15/dev' of https://github.com/umbraco/Umbraco-CMS into…
Migaroez Feb 18, 2025
fe9ea47
Merge branch 'release/15.2.1' into v15/dev
Migaroez Feb 18, 2025
e0d1267
Loosen the RTEValue datacontract to improve migrations (#18349)
Migaroez Feb 17, 2025
04eb94d
use display contents instead of setting a height (#18363)
nielslyngsoe Feb 18, 2025
96bbed5
On retrieving other URLs, don't attempt to walk up the navigation str…
AndyButland Feb 18, 2025
3a753f4
Bump version
Migaroez Feb 18, 2025
b3b85b8
Adds Tiptap Cascading Menu Popover
leekelleher Feb 18, 2025
fdebb66
Merge remote-tracking branch 'origin/contrib' into v15/dev
iOvergaard Feb 18, 2025
c216d69
Feature: Display current variant item name (#18311)
madsrasmussen Feb 18, 2025
c198e19
Modified AspNetCoreRequestAccessor to handle absensce of an HttpContext.
AndyButland Feb 19, 2025
f389cc9
Modified AspNetCoreRequestAccessor to gracefully handle the absence …
AndyButland Feb 19, 2025
effa40f
build(deps-dev): update npm dependencies
iOvergaard Feb 18, 2025
28fb7ad
Refactors loading core Tipap extension
leekelleher Feb 19, 2025
040d4fe
Tiptap RTE: Table extension enhancements (#18365)
leekelleher Feb 19, 2025
b10a11b
Disable webhook firing if disable in configuration. (#18386)
AndyButland Feb 19, 2025
edff2c1
Chore: Block Manager + Variant ID Polishing (#18321)
nielslyngsoe Feb 20, 2025
31bbd7e
Merge pull request #18224 from umbraco/v15/feature/block-grid-block-t…
nielslyngsoe Feb 20, 2025
59819e0
use super.value to trigger validation check (#18303)
nielslyngsoe Feb 20, 2025
3a9ab25
Merge branch 'release/15.2.2' into v15/dev
Migaroez Feb 20, 2025
37fd4f6
Toggle property Value labels and validation (#18333)
nielslyngsoe Feb 20, 2025
5401a85
Feature: Support Handle Selector in Sorter (#18356)
nielslyngsoe Feb 20, 2025
7a7602f
V15: Update Backoffice NPM dependencies (#18376)
iOvergaard Feb 20, 2025
54dafd4
update documentation for a simpler and more clear read (#18381)
nielslyngsoe Feb 20, 2025
ec77b2f
Check null in cachevalue for (#18395)
nikolajlauridsen Feb 20, 2025
60eb55c
Add Localization to Document Type - Settings - Vary by Culture and Se…
DitteKKoustrup Feb 20, 2025
78554f8
Feature: Data mapping extension + aligning reference lists (#18318)
madsrasmussen Feb 20, 2025
2c20902
Feature: Delete/Trash referenced by (#18351)
madsrasmussen Feb 20, 2025
21a0716
correct uui-text impl
nielslyngsoe Feb 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
107 changes: 72 additions & 35 deletions .github/BUILD.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Umbraco CMS Build

This guide will explain how you can build the Umbraco CMS from the source code. You will most likely want to do this if your are setting up a local development environment for contributing code updates to the project. You will need this in order to develop and test your fix or feature.

## Are you sure?

In order to use Umbraco as a CMS and build your website with it, you should not build it yourself. If you're reading this then you're trying to contribute to Umbraco or you're debugging a complex issue.
Expand All @@ -13,81 +15,117 @@ If the answer is yes, please read on. Otherwise, make sure to head on over [to t

↖️ You can jump to any section by using the "table of contents" button ( ![Table of contents icon](img/tableofcontentsicon.svg) ) above.

## Debugging source locally
## Working with the Umbraco source code

Did you read ["Are you sure"](#are-you-sure)?

[More details about contributing to Umbraco and how to use the GitHub tooling can be found in our guide to contributing.][contribution guidelines]

If you want to run a build without debugging, see [Building from source](#building-from-source) below. This runs the build in the same way it is run on our build servers.

> [!NOTE]
> The caching for the back office has been described as 'aggressive' so we often find it's best when making back office changes to [disable caching in the browser (check "Disable cache" on the "Network" tab of developer tools)][disable browser caching] to help you to see the changes you're making.
If you've got this far and are keen to get stuck in helping us fix a bug or implement a feature, great! Please read on...

#### Debugging with VS Code
### Prerequisites

In order to build the Umbraco source code locally with Visual Studio Code, first make sure you have the following installed.
In order to work with the Umbraco source code locally, first make sure you have the following installed.

- [Visual Studio Code](https://code.visualstudio.com/)
- Your favourite IDE: [Visual Studio 2022 v17+ with .NET 7+](https://visualstudio.microsoft.com/vs/), [Rider](https://www.jetbrains.com/rider/) or [Visual Studio Code](https://code.visualstudio.com/)
- [dotnet SDK v9+](https://dotnet.microsoft.com/en-us/download)
- [Node.js v20+](https://nodejs.org/en/download/)
- npm v10+ (installed with Node.js)
- [Git command line](https://git-scm.com/download/)

Open the root folder of the repository in Visual Studio Code.
### Familiarizing yourself with the code

Umbraco is a .NET application using C#. The solution is broken down into multiple projects. There are several class libraries. The `Umbraco.Web.UI` project is the main project that hosts the back office and login screen. This is the project you will want to run to see your changes.

To build the front-end you'll need to open the command pallet (<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd>) and run `>Tasks: Run Task` followed by `Client Build`.
There are two web projects in the solution with client-side assets based on TypeScript, `Umbraco.Web.UI.Client` and `Umbraco.Web.UI.Login`.

You can also run the tasks manually on the command line:
There are a few different ways to work locally when implementing features or fixing issues with the Umbraco CMS. Depending on whether you are working solely on the front-end, solely on the back-end, or somewhere in between, you may find different workflows work best for you.

Here are some suggestions based on how we work on developing Umbraco at HQ.

### First checkout

When you first clone the source code, build the whole solution via your IDE. You can then start the `Umbraco.Web.UI` project via the IDE or the command line and should find everything across front and back-end is built and running.

```
cd src\Umbraco.Web.UI.Client
npm i
npm run build:for:cms
cd <solution root>\src\Umbraco.Web.UI
dotnet run --no-build
```

If you want to make changes to the UI, you can choose to run a front-end development server. To learn more please read the Umbraco.Web.UI.Client README.md [Run against a local Umbraco instance](../src/Umbraco.Web.UI.Client/.github/README.md#run-against-a-local-umbraco-instance) for more information.
When the page loads in your web browser, you can follow the installer to set up a database for debugging. When complete, you will have an empty Umbraco installation to begin working with. You may also wish to install a [starter kit][https://marketplace.umbraco.com/category/themes-&-starter-kits] to ease your debugging.

### Back-end only changes

The login screen is a different frontend build, for that one you can run it as follows:
If you are working on back-end only features, when switching branches or pulling down the latest from GitHub, you will find the front-end getting rebuilt periodically when you look to build the back-end changes. This can take a while and slow you down. So if for a period of time you don't care about changes in the front-end, you can disable this build step.

Go to `Umbraco.Cms.StaticAssets.csproj` and comment out the following lines of MsBuild by adding a REM statement in front:

```
cd src\Umbraco.Web.UI.Login
npm i
npm run dev
REM npm ci --no-fund --no-audit --prefer-offline
REM npm run build:for:cms
```

If you just want to build the Login screen to `Umbraco.Web.UI` then instead of running `dev`, you can do: `npm run build`.
Just be careful not to include this change in your PR.

### Front-end only changes

To run the C# portion of the project, either hit <kbd>F5</kbd> to begin debugging, or manually using the command line:
Conversely, if you are working on front-end only, you want to build the back-end once and then run it. Before you do so, update the configuration in `appSettings.json` to add the following under `Umbraco:Cms:Security`:

```
dotnet watch --project .\src\Umbraco.Web.UI\Umbraco.Web.UI.csproj
"BackOfficeHost": "http://localhost:5173",
"AuthorizeCallbackPathName": "/oauth_complete",
"AuthorizeCallbackLogoutPathName": "/logout",
"AuthorizeCallbackErrorPathName": "/error"
```

**The initial C# build might take a _really_ long time (seriously, go and make a cup of coffee!) - but don't worry, this will be faster on subsequent runs.**
Then run Umbraco from the command line.

When the page eventually loads in your web browser, you can follow the installer to set up a database for debugging. You may also wish to install a [starter kit][starter kits] to ease your debugging.
```
cd <solution root>\src\Umbraco.Web.UI
dotnet run --no-build
```

#### Debugging with Visual Studio
In another terminal window, run the following to watch the front-end changes and launch Umbraco using the URL indicated from this task.

In order to build the Umbraco source code locally with Visual Studio, first make sure you have the following installed.
```
cd <solution root>\src\Umbraco.Web.UI.Client
npm run dev:server
```

- [Visual Studio 2022 v17+ with .NET 7+](https://visualstudio.microsoft.com/vs/) ([the community edition is free](https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&rel=15) for you to use to contribute to Open Source projects)
- [Node.js v20+](https://nodejs.org/en/download/)
- npm v10+ (installed with Node.js)
- [Git command line](https://git-scm.com/download/)
You'll find as you make changes to the front-end files, the updates will be picked up and your browser refreshed automatically.

> [!NOTE]
> The caching for the back office has been described as 'aggressive' so we often find it's best when making back office changes to [disable caching in the browser (check "Disable cache" on the "Network" tab of developer tools)][disable browser caching] to help you to see the changes you're making.

The easiest way to get started is to open `umbraco.sln` in Visual Studio.
Whilst most of the backoffice code lives in `Umbraco.Web.UI.Client`, the login screen is in a separate project. If you do any work with that you can build with:

Umbraco is a C# based codebase, which is mostly ASP.NET Core MVC based. You can make changes, build them in Visual Studio, and hit <kbd>F5</kbd> to see the result. There are two web projects in the solution, `Umbraco.Web.UI.Client` and `Umbraco.Web.UI.Login`. They each have their own build process and can be run separately. The `Umbraco.Web.UI` project is the main project that hosts the back office and login screen. This is the project you will want to run to see your changes. It will automatically restore and build the client projects when you run it.
```
cd <solution root>\src\Umbraco.Web.UI.Login
npm run build
```

If you want to watch the UI Client to `Umbraco.Web.UI` then you can open a terminal in `src/Umbraco.Web.UI.Client` where you can run `npm run dev:mock` manually. This will launch the Vite dev server on http://localhost:5173 and watch for changes with mocked API responses.
In both front-end projects, if you've refreshed your branch from the latest on GitHub you may need to update front-end dependencies.

You can also run `npm run dev:server` to run the Vite server against a local Umbraco instance. In this case, you need to have the .NET project running and accept connections from the Vite server. Please see the Umbraco.Web.UI.Client README.md [Run against a local Umbraco instance](../src/Umbraco.Web.UI.Client/.github/README.md#run-against-a-local-umbraco-instance) for more information.
To do that, run:

**The initial C# build might take a _really_ long time (seriously, go and make a cup of coffee!) - but don't worry, this will be faster on subsequent runs.**
```
npm ci --no-fund --no-audit --prefer-offline
```

### Full-stack changes

If working across both front and back-end, follow both methods and use `dotnet watch`, or re-run `dotnet run` (or `dotnet build` followed by `dotnet run --no-build`) whenever you need to update the back-end code.

Request and response models used by the management APIs are made available client-side as generated code. If you make changes to the management API, you can re-generate the typed client code with:

```
cd <solution root>\src\Umbraco.Web.UI.Client
npm run generate:server-api-dev
```

When the page eventually loads in your web browser, you can follow the installer to set up a database for debugging. You may also wish to install a [starter kit][starter kits] to ease your debugging.
Please also update the `OpenApi.json` file held in the solution by copying and pasting the output from `/umbraco/swagger/management/swagger.json`.

## Building from source

Expand Down Expand Up @@ -148,5 +186,4 @@ The produced artifacts are published in a container that can be downloaded from
Git might have issues dealing with long file paths during build. You may want/need to enable `core.longpaths` support (see [this page](https://github.com/msysgit/msysgit/wiki/Git-cannot-create-a-file-or-directory-with-a-long-path) for details).

[ contribution guidelines]: CONTRIBUTING.md "Read the guide to contributing for more details on contributing to Umbraco"
[ starter kits ]: https://our.umbraco.com/packages/?category=Starter%20Kits&version=9 "Browse starter kits available for v9 on Our "
[ disable browser caching ]: https://techwiser.com/disable-cache-google-chrome-firefox "Instructions on how to disable browser caching in Chrome and Firefox"
33 changes: 21 additions & 12 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,43 @@

These contribution guidelines are mostly just that - guidelines, not rules. This is what we've found to work best over the years, but if you choose to ignore them, we still love you! 💖 Use your best judgement, and feel free to propose changes to this document in a pull request.

## Getting Started
We have a guide on [what to consider before you start](contributing-before-you-start.md) and more detailed guides at the end of this article.

The following steps are a quick-start guide:
## Contribution guide

This guide describes each step to make your first contribution:

1. **Fork**

Create a fork of [`Umbraco-CMS` on GitHub](https://github.com/umbraco/Umbraco-CMS)

![Fork the repository](img/forkrepository.png)

2. **Clone**

When GitHub has created your fork, you can clone it in your favorite Git tool or on the command line with `git clone https://github.com/[YourUsername]/Umbraco-CMS`.
![Clone the fork](img/clonefork.png)

![Clone the fork](img/clonefork.png)

3. **Switch to the correct branch**

Switch to the `contrib` branch

4. **Build**
4. **Branch out**

Create a new branch based on `contrib` and name it after the issue you're fixing, For example: `v15/bugfix/18132-rte-tinymce-onchange-value-check`.

Please follow this format for branches: `v{major}/{feature|bugfix|task}/{issue}-{description}`.

This is a development branch for the particular issue you're working on, in this case a bug-fix for issue number `18132` that affects Umbraco v.15.

Don't commit to `contrib`, create a new branch first.

Build your fork of Umbraco locally [as described in the build documentation](BUILD.md), you can build with any IDE that supports dotnet or the command line.
5. **Build or run a Development Server**

5. **Branch**
You can build or run a Development Server with any IDE that supports DotNet or the command line.

Create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp/12345`. This means it's a temporary branch for the particular issue you're working on, in this case issue number `12345`. Don't commit to `contrib`, create a new branch first.
Read [Build or run a Development Server](BUILD.md) for the right approach to your needs.

6. **Change**

Expand All @@ -41,7 +50,7 @@ The following steps are a quick-start guide:

Done? Yay! 🎉

Remember to commit to your new `temp` branch, and don't commit to `contrib`. Then you can push the changes up to your fork on GitHub.
Remember to commit to your branch. When it's ready push the changes to your fork on GitHub.

8. **Create pull request**

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/test-backoffice.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ jobs:
- name: Check for circular dependencies
run: node devops/circular/index.js src
- run: npm run lint:errors
- run: npm run generate:tsconfig
- run: npm run generate:icons
- run: npm run build:for:cms
- run: npm run check:paths
- run: npm run generate:jsonschema:dist
Expand Down
Loading
Loading