From 024a11ceeb096ab52e55474ee82d437b3d61ba0d Mon Sep 17 00:00:00 2001 From: ben51degrees Date: Tue, 3 Nov 2026 18:43:22 +0000 Subject: [PATCH 1/6] Find the Java example in 51degrees-java (#16) --- Examples/ExampleApps.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/ExampleApps.cs b/Examples/ExampleApps.cs index fe7b8df..6974eee 100644 --- a/Examples/ExampleApps.cs +++ b/Examples/ExampleApps.cs @@ -230,7 +230,7 @@ public static ExampleAppOptions BuildOptions( Lang: "java", WorkingDir: Path.Combine( RepoPaths.SiblingsRoot, - "device-detection-java-examples"), + "51degrees-java", "examples", "device-detection"), Command: "java", Args: new[] { "-jar" }, ReadinessPath: "/", From e8fed5c62e67ca72eb1ad3ec6f66d59b949bd051 Mon Sep 17 00:00:00 2001 From: Jamesr51d <122470673+Jamesr51d@users.noreply.github.com> Date: Tue, 3 Nov 2026 19:43:34 +0100 Subject: [PATCH 2/6] Find the dotnet example in 51degrees-dotnet (#17) device-detection-dotnet-examples has moved into 51degrees-dotnet, under examples/device-detection. Both dotnet demos, pmp-web and GettingStarted-Web, are found there as siblings, and the docs name the monorepo. --- Browser51Did/Demo.cs | 2 +- Browser51Did/README.md | 4 ++-- Examples/ExampleApps.cs | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Browser51Did/Demo.cs b/Browser51Did/Demo.cs index 82e5bec..311bbe0 100644 --- a/Browser51Did/Demo.cs +++ b/Browser51Did/Demo.cs @@ -11,7 +11,7 @@ namespace FiftyOne.Pipeline.Cloud.SeleniumTests.Browser51Did; /// /// The routes every language's demo serves, as the dotnet demo in -/// device-detection-dotnet-examples defines them. A test names the page it +/// 51degrees-dotnet defines them. A test names the page it /// loads by one of these and nothing else, so the same test drives any /// demo that serves the same pages. /// diff --git a/Browser51Did/README.md b/Browser51Did/README.md index 7245f65..e432aca 100644 --- a/Browser51Did/README.md +++ b/Browser51Did/README.md @@ -12,8 +12,8 @@ resource key cannot reach a test report, and three, in is read from. They drive a **demo**, a small web app that serves every page the tests -load. The dotnet demo is `Examples/Cloud/pmp-web` in -[device-detection-dotnet-examples](https://github.com/51Degrees/device-detection-dotnet-examples). +load. The dotnet demo is `examples/device-detection/Cloud/pmp-web` in +[51degrees-dotnet](https://github.com/51Degrees/51degrees-dotnet). The pages, the recorder that watches them, the change watcher and the stub consent platform are plain static files in that demo, so a demo in another language copies them, fills the same placeholders, and these same tests then diff --git a/Examples/ExampleApps.cs b/Examples/ExampleApps.cs index 6974eee..a9e6a1d 100644 --- a/Examples/ExampleApps.cs +++ b/Examples/ExampleApps.cs @@ -145,8 +145,8 @@ public static bool TryCreateDemo( Lang: "dotnet", WorkingDir: Path.Combine( RepoPaths.SiblingsRoot, - "device-detection-dotnet-examples", - "Examples", "Cloud", "pmp-web"), + "51degrees-dotnet", "examples", "device-detection", + "Cloud", "pmp-web"), Command: "dotnet", Args: new[] { "run", "-c", "Release", "--no-launch-profile" }, ReadinessPath: "/cloud/common", @@ -211,8 +211,8 @@ public static ExampleAppOptions BuildOptions( Lang: "dotnet", WorkingDir: Path.Combine( RepoPaths.SiblingsRoot, - "device-detection-dotnet-examples", - "Examples", "Cloud", "GettingStarted-Web"), + "51degrees-dotnet", "examples", "device-detection", + "Cloud", "GettingStarted-Web"), Command: "dotnet", Args: new[] { "run", "-c", "Release", "--no-launch-profile" }, ReadinessPath: "/", From 31dda77e7e6b39781904be30c3b1569e5fa120e6 Mon Sep 17 00:00:00 2001 From: Eugene Dorfman Date: Tue, 3 Nov 2026 19:43:45 +0100 Subject: [PATCH 3/6] Find the Node example in 51degrees-node (#18) * Find the Node example in 51degrees-node * Copy the monorepo packages in when installing the Node example --- Examples/ExampleApps.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Examples/ExampleApps.cs b/Examples/ExampleApps.cs index a9e6a1d..c086e39 100644 --- a/Examples/ExampleApps.cs +++ b/Examples/ExampleApps.cs @@ -253,7 +253,7 @@ public static ExampleAppOptions BuildOptions( Lang: "node", WorkingDir: Path.Combine( RepoPaths.SiblingsRoot, - "device-detection-node", + "51degrees-node", "device-detection", "fiftyone.devicedetection.cloud", "examples", "cloud", "gettingstarted-web"), Command: "node", @@ -269,8 +269,13 @@ public static ExampleAppOptions BuildOptions( ["RESOURCE_KEY"] = o.ResourceKey, }, BuildCommand: "npm", - // package.json lives one level up from examples/cloud/gettingstarted-web - BuildArgs: new[] { "install", "--prefix", "../../.." }, + // package.json lives one level up from examples/cloud/gettingstarted-web. + // The pipeline packages are taken from the monorepo, so its + // pipeline/fiftyone.pipeline.core/javascript-templates submodule + // must be checked out before this runs. --install-links copies + // them in with their own dependencies; a symlink would resolve + // those from the monorepo, where nothing is installed. + BuildArgs: new[] { "install", "--install-links", "--prefix", "../../.." }, BuildTimeoutSeconds: 300, JsonEndpointPath: "/json"), ["python"] = new ExampleDescriptor( From 2eaaedf101f2acf652e4b2864482f846331a8525 Mon Sep 17 00:00:00 2001 From: James Rosewell Date: Tue, 3 Nov 2026 18:43:58 +0000 Subject: [PATCH 4/6] Check that only rc merges into the default branch (#19) --- .github/workflows/only-rc-into-main.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/workflows/only-rc-into-main.yml diff --git a/.github/workflows/only-rc-into-main.yml b/.github/workflows/only-rc-into-main.yml new file mode 100644 index 0000000..69e19ca --- /dev/null +++ b/.github/workflows/only-rc-into-main.yml @@ -0,0 +1,11 @@ +name: Only rc into main + +# A pull request into the default branch must come from rc. See +# 51Degrees/common-ci .github/workflows/only-rc-into-main.yml. +on: + pull_request: + +jobs: + rc: + name: Only rc into main + uses: 51Degrees/common-ci/.github/workflows/only-rc-into-main.yml@main From a2dd8f338b9f52891de65cbb6e184c48c52b49a6 Mon Sep 17 00:00:00 2001 From: Eugene Dorfman Date: Tue, 3 Nov 2026 22:31:14 +0100 Subject: [PATCH 5/6] Find the Python example in 51degrees-python (#20) --- Examples/ExampleApps.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Examples/ExampleApps.cs b/Examples/ExampleApps.cs index c086e39..cfbd07e 100644 --- a/Examples/ExampleApps.cs +++ b/Examples/ExampleApps.cs @@ -282,12 +282,12 @@ public static ExampleAppOptions BuildOptions( Lang: "python", WorkingDir: Path.Combine( RepoPaths.SiblingsRoot, - "device-detection-python", + "51degrees-python", "device-detection", "fiftyone_devicedetection_examples"), // the venv's python (absolute path) Command: VenvPython(Path.Combine( RepoPaths.SiblingsRoot, - "device-detection-python", + "51degrees-python", "device-detection", "fiftyone_devicedetection_examples", ".venv")), Args: new[] { "-m", "fiftyone_devicedetection_examples.cloud.gettingstarted_web" }, From 7ca1fe3aa36ddd52c2832896f09c762815053d3b Mon Sep 17 00:00:00 2001 From: Eugene Dorfman Date: Tue, 3 Nov 2026 22:32:18 +0100 Subject: [PATCH 6/6] Find the PHP example in 51degrees-php (#21) --- Examples/ExampleApps.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Examples/ExampleApps.cs b/Examples/ExampleApps.cs index cfbd07e..4f6414c 100644 --- a/Examples/ExampleApps.cs +++ b/Examples/ExampleApps.cs @@ -316,7 +316,7 @@ public static ExampleAppOptions BuildOptions( Lang: "php", WorkingDir: Path.Combine( RepoPaths.SiblingsRoot, - "device-detection-php", "examples"), + "51degrees-php", "device-detection", "cloud", "examples"), Command: "bash", // clear the cached pipeline so the endpoint override takes effect Args: new[]