Skip to content

Commit

Permalink
Publish documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
runner committed Oct 29, 2024
1 parent f6755aa commit b410c3e
Show file tree
Hide file tree
Showing 8 changed files with 274 additions and 236 deletions.
25 changes: 24 additions & 1 deletion build/teamcity/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1045,6 +1045,15 @@
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#jetbrains-teamcity" class="md-nav__link">
<span class="md-ellipsis">
JetBrains TeamCity
</span>
</a>

</li>

</ul>
Expand Down Expand Up @@ -1517,6 +1526,15 @@
</span>
</a>

</li>

<li class="md-nav__item">
<a href="#jetbrains-teamcity" class="md-nav__link">
<span class="md-ellipsis">
JetBrains TeamCity
</span>
</a>

</li>

</ul>
Expand Down Expand Up @@ -1624,6 +1642,9 @@ <h1>TeamCity</h1>
the agent's Docker image.</p>
<p>About ten agents are available for running builds simultaneously. They are hosted at multiple different locations (in server rooms and the cloud). The agents are running Linux, except one agent, which is running Windows 10, and one is running Mac <abbr title="Open Source / Operating System">OS</abbr> X.</p>
<h2 id="docker">Docker<a class="headerlink" href="#docker" title="Permanent link">&para;</a></h2>
<div class="admonition warning">
<p class="admonition-title">This section is outdated, Docker is not used anymore.</p>
</div>
<p><span class="twemoji">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32">
<image width="32" height="32"
Expand All @@ -1647,6 +1668,8 @@ <h2 id="docker">Docker<a class="headerlink" href="#docker" title="Permanent link
These images are built from a Dockerfile.</p>
<p>Everything in the infrastructure is provisioning using Docker from the TeamCity front end over the database to the build agent. For the built agent, this approach allows us to keep the build agents consistent with their installed software and their versions. The docker image build from the docker file is published to Docker Hub, a hosting service for images, and then used in our build server.</p>
<p>GitLab hosts our complete docker configuration. It also included the scripts that download/update the docker image and run the agent. Since our TeamCity setup uses multiple containers, a separate container for the database, or the web server that handles the encrypted connection, we use <a href="https://docs.docker.com/compose/">docker-compose ⧉</a> as an orchestration tool. </p>
<h2 id="jetbrains-teamcity">JetBrains TeamCity<a class="headerlink" href="#jetbrains-teamcity" title="Permanent link">&para;</a></h2>
<p>JetBrains are also building <abbr title="Meta Programming System">MPS</abbr> on Teamcity which can be reached via <a href="https://teamcity.jetbrains.com/project/MPS?mode=builds#all-projects">https://teamcity.jetbrains.com/project/MPS?mode=builds#all-projects ⧉</a>. They provide downloadable artifacts, installers and have tests for different subsystems such as the typesystem, generation and also for some <abbr title="Meta Programming System">MPS</abbr> platforms such as <abbr title="Meta Programming System">MPS</abbr>-Extensions. All configurations starting from 2017.1 are available up to the latest <abbr title="Meta Programming System">MPS</abbr> version which is the master branch.</p>



Expand All @@ -1667,7 +1690,7 @@ <h2 id="docker">Docker<a class="headerlink" href="#docker" title="Permanent link
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">July 12, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">October 29, 2024</span>
</span>


Expand Down
3 changes: 2 additions & 1 deletion languages/baselanguage/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1853,6 +1853,7 @@ <h3 id="blog-posts">Blog Posts<a class="headerlink" href="#blog-posts" title="Pe
<li><a href="https://www.baeldung.com/java-pattern-matching-instanceof">pattern matching for instanceof ⧉</a></li>
<li><a href="https://www.geeksforgeeks.org/double-brace-initialization-java">double brace initialization ⧉</a></li>
</ul>
<p>For a full list of Java features in general, visit: <a href="https://www.marcobehler.com/guides/a-guide-to-java-versions-and-features#_java_features_8_20">Java Versions and Features | marcobehler.<abbr title="commercial/common/communication">com</abbr></a> or <a href="https://advancedweb.hu/a-categorized-list-of-all-java-and-jvm-features-since-jdk-8-to-21/">A categorized list of all Java and <abbr title="Java Virtual Machine">JVM</abbr> features since <abbr title="Java Development Kit">JDK</abbr> 8 to 21 | Advanced Web Machinery ⧉</a></p>
</div>
<div class="admonition warning">
<p class="admonition-title">A function with Base Language code doesn't return anything when called.</p>
Expand Down Expand Up @@ -2147,7 +2148,7 @@ <h3 id="image-generation-for-nodes">Image Generation for Nodes<a class="headerli
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">July 12, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">October 29, 2024</span>
</span>


Expand Down
3 changes: 2 additions & 1 deletion patterns/language_design/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1736,6 +1736,7 @@ <h2 id="general">General<a class="headerlink" href="#general" title="Permanent l
<li><a href="https://markusvoelter.medium.com/when-is-something-a-domain-specific-language-83b7eff79ed4">When is something a (domain-specific) language? ⧉</a> (<em>Markus Voelter's blog</em>)</li>
<li><a href="https://www.f1re.io/model-driven-engineering">What is Model Driven Engineering ⧉</a> (<em>F1RE's blog</em>)</li>
<li><a href="https://specificlanguages.com/posts/2022-04/19-ddd-vs-le/">Domain-driven design vs. language engineering ⧉</a> (<em>Specific Languages' blog</em>)</li>
<li><a href="https://orghacking.com/pioneers-settlers-town-planners-wardley-9dcd3709cde7">Pioneers, Settlers, Town Planners [Wardley] ⧉</a></li>
</ul>
<h3 id="introducing-dsls">Introducing DSLs<a class="headerlink" href="#introducing-dsls" title="Permanent link">&para;</a></h3>
<ul>
Expand Down Expand Up @@ -1812,7 +1813,7 @@ <h3 id="z3-theorem-prover">Z3 Theorem Prover<a class="headerlink" href="#z3-theo
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">July 12, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">October 29, 2024</span>
</span>


Expand Down
6 changes: 5 additions & 1 deletion patterns/user_experience/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1593,6 +1593,10 @@ <h1 id="user-experience-and-user-interfaces">User Experience and User Interfaces
<p>When there are many choices, a search functionality should be provided that works similarly to the code completion menu when a custom <abbr title="User Interface">UI</abbr>
component is used. Similar choices can also be grouped (e.g., <a href="https://jetbrains.github.io/MPS-extensions/extensions/utils/intentions-menu/">intentions menu ⧉</a> for grouping intentions).</p>
</details>
<div class="admonition question">
<p class="admonition-title">Where Can I find I list of available icons?</p>
<p>All IntelliJ platform icons can be found in <a href="https://intellij-icons.jetbrains.design/">here</a>. If you want to load icons programmatically, there are the classes <a href="https://github.com/JetBrains/MPS/blob/master/workbench/mps-icons/source/jetbrains/mps/icons/MPSIcons.java">MPSIcons</a> and <a href="https://github.com/JetBrains/MPS/blob/master/workbench/mps-platform/source/jetbrains/mps/ide/icons/IdeIcons.java">IdeIcons</a>. Most icons are located in <a href="https://github.com/JetBrains/MPS/tree/master/workbench/mps-icons/source">workbench/mps-icons/source ⧉</a>. </p>
</div>
<h2 id="basics">Basics<a class="headerlink" href="#basics" title="Permanent link">&para;</a></h2>
<p>This section contains links to fundamental knowledge unrelated to <abbr title="Meta Programming System">MPS</abbr> that is needed to understand the topic
user experience.</p>
Expand Down Expand Up @@ -1829,7 +1833,7 @@ <h2 id="dark-theme">Dark Theme<a class="headerlink" href="#dark-theme" title="Pe
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">July 12, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">October 29, 2024</span>
</span>


Expand Down
29 changes: 19 additions & 10 deletions platform_essentials/accessing_the_project/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -1867,13 +1867,22 @@ <h3 id="intentions">Intentions<a class="headerlink" href="#intentions" title="Pe
<h3 id="tests">Tests<a class="headerlink" href="#tests" title="Permanent link">&para;</a></h3>
<p>The project expression is available in tests, although you should only need it when invoking the generator or resolving nodes through the global repository.</p>
<h3 id="tool-window">Tool Window<a class="headerlink" href="#tool-window" title="Permanent link">&para;</a></h3>
<p><abbr title="value">val</abbr> dataContext = DataManager.getInstance().getDataContext(toolWindow.component)
<abbr title="value">val</abbr> project = MPSDataKeys.PROJECT.getData(dataContext)
<abbr title="value">val</abbr> mpsProject = MPSDataKeys.MPS_PROJECT.getData(dataContext)</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-1">1</a></span>
<span class="normal"><a href="#__codelineno-2-2">2</a></span>
<span class="normal"><a href="#__codelineno-2-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1"></a>val dataContext = DataManager.getInstance().getDataContext(toolWindow.component)
<a id="__codelineno-2-2" name="__codelineno-2-2"></a>val project = MPSDataKeys.PROJECT.getData(dataContext)
<a id="__codelineno-2-3" name="__codelineno-2-3"></a>val mpsProject = MPSDataKeys.MPS_PROJECT.getData(dataContext)
</code></pre></div></td></tr></table></div>
<h3 id="plugin-solutionplugin-aspect">Plugin Solution/Plugin Aspect<a class="headerlink" href="#plugin-solutionplugin-aspect" title="Permanent link">&para;</a></h3>
<p>If you need access to the project object, you can use a project plugin with an MPSProject instance in the <abbr title="initialization">init</abbr> and dispose block. You can pass the instance to other classes as well. To get the IntelliJ project use <code class="highlight"><span class="n">ProjectHelper</span><span class="p">.</span><span class="na">toIdeaProject</span><span class="p">(</span><span class="n">project</span><span class="p">)</span></code>.</p>
<h3 id="other-places">Other Places<a class="headerlink" href="#other-places" title="Permanent link">&para;</a></h3>
<p>Some low-level code, like behaviors, are not supposed to start a command or interact with the <abbr title="User Interface">UI</abbr> (where some dialogs require the project/<abbr title="Integrated Development Environment">IDE</abbr> frame). There's always a project for user-triggered actions, and this is the moment proper command access gets started and various <abbr title="User Interface">UI</abbr> stuff happens. It's wrong to invoke some behavior that would try to guess the project down the road. Typically, there also should not be a need to access the project in the generator.</p>
<p>Some low-level code, like behaviors, are not supposed to start a command or interact with the <abbr title="User Interface">UI</abbr> (where some dialogs require the project/<abbr title="Integrated Development Environment">IDE</abbr> frame). There's always a project for user-triggered actions, and this is the moment proper command access gets started and various <abbr title="User Interface">UI</abbr> stuff happens. It's wrong to invoke some behavior that would try to guess the project down the road. Typically, there also should not be a need to access the project in the generator. If you need to access it from the generator or TextGen, you can use:</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-3-1">1</a></span>
<span class="normal"><a href="#__codelineno-3-2">2</a></span>
<span class="normal"><a href="#__codelineno-3-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-3-1" name="__codelineno-3-1"></a>MPSModuleRepository repository = MPSCoreComponents.getInstance().getPlatform().findComponent(MPSModuleRepository.class);
<a id="__codelineno-3-2" name="__codelineno-3-2"></a>MPSNodeVirtualFile file = NodeVirtualFileSystem.getInstance().getFileFor(repository, rootNode);
<a id="__codelineno-3-3" name="__codelineno-3-3"></a>Project project = ProjectLocator.getInstance().guessProjectForFile(file);
</code></pre></div></td></tr></table></div>
<h3 id="code-to-avoid">Code to Avoid<a class="headerlink" href="#code-to-avoid" title="Permanent link">&para;</a></h3>
<ul>
<li>guessing the project through <code class="highlight"><span class="n">ProjectManager</span><span class="p">.</span><span class="na">getInstance</span><span class="p">().</span><span class="na">getOpenedProjects</span><span class="p">()</span></code></li>
Expand All @@ -1882,11 +1891,11 @@ <h3 id="code-to-avoid">Code to Avoid<a class="headerlink" href="#code-to-avoid"
<li>guessing the IntelliJ project through the WindowManager class</li>
</ul>
<p>When you need to access the model from a different thread (<a href="https://www.jetbrains.com/help/mps/open-api-accessing-models-from-code.html#concurrentaccess">concurrent access ⧉</a>), it might be tempting to write the following code that doesn't work:</p>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-2-1">1</a></span>
<span class="normal"><a href="#__codelineno-2-2">2</a></span>
<span class="normal"><a href="#__codelineno-2-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-2-1" name="__codelineno-2-1"></a><span class="n">command</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">node</span><span class="p">.</span><span class="na">model</span><span class="o">/</span><span class="p">.</span><span class="na">getRepository</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-2-2" name="__codelineno-2-2"></a>
<a id="__codelineno-2-3" name="__codelineno-2-3"></a><span class="p">}</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"><a href="#__codelineno-4-1">1</a></span>
<span class="normal"><a href="#__codelineno-4-2">2</a></span>
<span class="normal"><a href="#__codelineno-4-3">3</a></span></pre></div></td><td class="code"><div><pre><span></span><code><a id="__codelineno-4-1" name="__codelineno-4-1"></a><span class="n">command</span><span class="w"> </span><span class="n">with</span><span class="w"> </span><span class="n">node</span><span class="p">.</span><span class="na">model</span><span class="o">/</span><span class="p">.</span><span class="na">getRepository</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<a id="__codelineno-4-2" name="__codelineno-4-2"></a>
<a id="__codelineno-4-3" name="__codelineno-4-3"></a><span class="p">}</span>
</code></pre></div></td></tr></table></div>
<p>It will fail with the following exception: <code>GlobalModelAccess does not support actions that require a command to run. One needs a project to run such actions</code>. In those cases, accessing it and writing <code>project.getRepository()</code>. Use one of the mentioned methods, and don't guess the project. A question that you should answer first: Do I need to invoke the code here, or is there a better place to invoke it?</p>
<h3 id="exceptions">Exceptions<a class="headerlink" href="#exceptions" title="Permanent link">&para;</a></h3>
Expand Down Expand Up @@ -1915,7 +1924,7 @@ <h3 id="exceptions">Exceptions<a class="headerlink" href="#exceptions" title="Pe
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21 13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6 0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1-2.1-2M12.5 7v5.2l4 2.4-1 1L11 13V7h1.5M11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10 9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1 7.5 7.1 7.9l-.1.2v1.8Z"/></svg>
</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">July 12, 2024</span>
<span class="git-revision-date-localized-plugin git-revision-date-localized-plugin-date">July 18, 2024</span>
</span>


Expand Down
2 changes: 1 addition & 1 deletion search/search_index.json

Large diffs are not rendered by default.

Loading

0 comments on commit b410c3e

Please sign in to comment.