diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 4aa9d948..516fde0b 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -12,7 +12,7 @@ jobs: - name: "CLA Assistant" if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' # Beta Release - uses: contributor-assistant/github-action@v2.3.0 + uses: contributor-assistant/github-action@v2.6.1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # the below token should have repo scope and must be manually added by you in the repository's secret @@ -23,7 +23,7 @@ jobs: path-to-signatures: 'signatures/Autodesk/Individual/sydevs.json' path-to-document: 'https://github.com/Autodesk/CLA-Assistant-Test-Signatures/blob/master/CLA.md' # e.g. a CLA or a DCO document # branch should not be protected - branch: 'master' + branch: 'main' allowlist: user1,bot* #below are the optional inputs - If the optional inputs are not given, then default values will be taken @@ -39,4 +39,4 @@ jobs: #custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA' #custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.' #lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true) - #use-dco-flag: true - If you are using DCO instead of CLA + #use-dco-flag: true - If you are using DCO instead of CLA \ No newline at end of file diff --git a/README.md b/README.md index cc2547f0..54307cc2 100644 --- a/README.md +++ b/README.md @@ -20,23 +20,23 @@ The recommended way to use SyDEVS in a simulation project is to include the [lat To build the SyDEVS examples and tests using [CMake](http://www.cmake.org/) and [Visual Studio 2022](https://www.visualstudio.com), follow the instructions below. -* Open a command prompt and navigate to the `sydevs` project directory. -* `mkdir build` -* `cd build/` -* `cmake -G "Visual Studio 17 2022" -A x64 ..` -* Open `build/SyDEVS.sln` in Visual Studio -* Recommendation: In `Tools -> Options -> Text Editor -> C/C++ -> Tabs`, select `Insert spaces` with a `Tab size` and `Indent size` of `4` +1. Open a command prompt and navigate to the `sydevs` project directory. +1. `mkdir build` +1. `cd build/` +1. `cmake -G "Visual Studio 17 2022" -A x64 ..` +1. Open `build/SyDEVS.sln` in Visual Studio +1. Recommendation: In `Tools -> Options -> Text Editor -> C/C++ -> Tabs`, select `Insert spaces` with a `Tab size` and `Indent size` of `4` ### Building SyDEVS using GCC on Windows To build the SyDEVS examples and tests using [CMake](http://www.cmake.org/) and [TDM-GCC](https://jmeubank.github.io/tdm-gcc/), follow the instructions below. -* Install the 64+32-bit MinGW-w64 edition of TDM-GCC. -* Open a command prompt and navigate to the `sydevs` project directory. -* `mkdir bin` -* `cd bin/` -* `cmake -G "MinGW Makefiles" ..` -* `mingw32-make` +1. Install the 64+32-bit MinGW-w64 edition of TDM-GCC. +1. Open a command prompt and navigate to the `sydevs` project directory. +1. `mkdir bin` +1. `cd bin/` +1. `cmake -G "MinGW Makefiles" ..` +1. `mingw32-make` ### Testing SyDEVS @@ -48,30 +48,33 @@ Note that the complete set of regression tests will only run if MSVC is used. If ### Generating the API documentation -To build or update the documentation files with [Doxygen](https://www.doxygen.nl/), make sure you are in the top level directory (where the `doxygen.config` is) and execute the following command: +To build or update the documentation files with [Doxygen](https://www.doxygen.nl/), make sure you are in the top level directory where [doxygen.config](doxygen.config) is located, and execute the following command: -- `doxygen doxygen.config` +* `doxygen doxygen.config` This will build the documentation in the [`doc`](doc) directory. To open the documentation: -- `cd docs/html` -- Open `index.html` in your web browser. +1. `cd docs/html` +1. Open `index.html` in your web browser. You should update the documentation on a regular basis to keep it in sync with the code. -## Documentation +### Releasing a new version of SyDEVS -### Website +When releasing a new version of SyDEVS, remember to perform the following steps: -The [Main SyDEVS Website](https://autodesk.github.io/sydevs) includes an [Overview](https://autodesk.github.io/sydevs/overview.html), a [Getting Started](https://autodesk.github.io/sydevs/getting_started/) tutorial, a [User Manual](https://autodesk.github.io/sydevs/user_manual/), and the [API Reference](https://autodesk.github.io/sydevs/doc/html/) for the latest release. +1. In [doxygen.config](doxygen.config), update the `PROJECT_NUMBER`. +1. Ensure the change above is merged into the `main` branch of the repo. +1. Create the new release. +1. Generate the API documentation, and copy the contents of `doc/html`. +1. Checkout the `gh-pages` branch of the repo. +1. In the `gh-pages` branch, replace the contents of `doc/html` with the contents copied above. -### PowerPoint +## Documentation -There are three PowerPoint documents located in the [`doc`](doc) folder: +### Website -- [`SyDEVS_Introduction.pptx`](doc/SyDEVS_Introduction.pptx): An introduction to the theory, paradigm, and code associated with SyDEVS. -- [`SyDEVS_Framework_Overview.pptx`](doc/SyDEVS_Framework_Overview.pptx): An overview of the systems modeling framework and related snippets of code. -- [`SyDEVS_Building7m_Tutorial.pptx`](doc/SyDEVS_Building7m_Tutorial.pptx): A tutorial that challenges developers to enhance the [`building7m`](src/examples/demo/building7m) example. +The [Main SyDEVS Website](https://autodesk.github.io/sydevs) includes an [Overview](https://autodesk.github.io/sydevs/overview.html), a [Getting Started](https://autodesk.github.io/sydevs/getting_started/) tutorial, a [User Manual](https://autodesk.github.io/sydevs/user_manual/), and the [API Reference](https://autodesk.github.io/sydevs/doc/html/) for the latest release. ### Examples diff --git a/src/sydevs/core/arraynd.h b/src/sydevs/core/arraynd.h index b351295b..699c2a1e 100644 --- a/src/sydevs/core/arraynd.h +++ b/src/sydevs/core/arraynd.h @@ -112,15 +112,15 @@ namespace sydevs { * // multidimensional array `other`. * ~~~ * - * Copying a multidimensional array shares the internal data by default. The - * result of `operator[]` also shares data, and so does the `view` member - * function. The `copy` member function performs a deep copy of a - * multidimensional array so that no data is shared. + * If the result of `operator[]` is assigned or copied to another array, that + * new array will continue to share data with the original. The same applies to + * the result of the `view` member function. The `copy` member function, + * however, ensures that the internal data is copied rather than shared. * * ~~~ * auto arr = array2d({2, 3}, {0, 1, 2, 3, 4, 5}); * - * auto arr2 = arr; // Shares data. + * auto arr2 = arr; // Copies data. * auto arr3 = arr[range()][range()]; // Shares data. * auto arr4 = arr.view(); // Shares data. * auto arr5 = arr.copy(); // Copies data.