Skip to content

Commit 92b3053

Browse files
committed
fix(build): add path-with-spaces check and document ARM64 dev container support
Add early failure when project directory path contains spaces, as GNU make and shell scripts fail in such environments. Update documentation to state that the dev container now supports ARM64/Apple Silicon architectures. Add required usage/examples sections to FAQ and setting_up_a_devcontainer to satisfy markdown linter. Fix devcontainer-setup link in FAQ.
1 parent 805412f commit 92b3053

4 files changed

Lines changed: 49 additions & 4 deletions

File tree

.devcontainer/README.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ limitations under the License.
3030

3131
<section class="intro">
3232

33-
This folder includes configuration for developing the project in a local container or using [GitHub Codespaces][github-codespaces].
33+
This folder includes configuration for developing the project in a local container or using [GitHub Codespaces][github-codespaces]. The dev container supports both x86_64 and ARM64 (Apple Silicon) architectures.
3434

3535
</section>
3636

@@ -44,6 +44,14 @@ This folder includes configuration for developing the project in a local contain
4444

4545
<!-- /.usage -->
4646

47+
<!-- Section to include examples. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
48+
49+
<section class="examples">
50+
51+
</section>
52+
53+
<!-- /.examples -->
54+
4755
<!-- Section to include usage notes. Make sure to keep an empty line after the `section` element and another before the `/section` close. -->
4856

4957
<section class="notes">

Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,15 @@ this_dir := $(patsubst %/,%,$(this_dir))
3030
# Define the root project directory:
3131
ROOT_DIR ?= $(this_dir)
3232

33+
# Check for spaces in the project path.
34+
# GNU make and the installation process fail when the path contains spaces.
35+
# See CONTRIBUTING.md and docs/contributing/development.md for details.
36+
_empty :=
37+
_space := $(_empty) $(_empty)
38+
ifneq ($(findstring $(_space),$(ROOT_DIR)),)
39+
$(error The project directory path contains spaces. GNU make and the installation process will fail. Please clone the repository to a path without spaces (e.g., use stdlib_gsoc instead of stdlib gsoc). See CONTRIBUTING.md and docs/contributing/development.md for details.)
40+
endif
41+
3342
# Define the top-level directory containing source files:
3443
SRC_DIR ?= $(ROOT_DIR)/lib/node_modules
3544

docs/contributing/FAQ.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ There are primarily two options for setting up your development environment to c
6464
1. [Manually setting up the development environment][manual-setup]
6565
2. [Setting up the dev container][devcontainer-setup]
6666

67-
Note: The dev container does not yet support ARM64 architectures. For more information, or if you're interested in adding ARM64 support, you can visit this [issue][devcontainer-issue].
67+
Note: The dev container supports ARM64/Apple Silicon. The base Node.js development environment works on both x86_64 and ARM64 architectures. Some optional features (e.g., R, Julia) may have architecture-specific limitations. For issues or feedback, see this [issue][devcontainer-issue].
6868

6969
<a name="install-cppcheck"></a>
7070

@@ -381,6 +381,20 @@ For more `make` commands, refer to the [documentation][benchmark] on running ben
381381
- [Git Cheatsheet][git-guide]
382382
- [Other make commands][make-commands]
383383
384+
<!-- FIXME: the following two empty sections are merely to satisfy the linter for `expected-html-sections` which cannot, atm, be turned off -->
385+
386+
<section class="usage">
387+
388+
</section>
389+
390+
<!-- /.usage -->
391+
392+
<section class="examples">
393+
394+
</section>
395+
396+
<!-- /.examples -->
397+
384398
<section class="links">
385399
386400
[git]: http://git-scm.com/
@@ -401,7 +415,7 @@ For more `make` commands, refer to the [documentation][benchmark] on running ben
401415
402416
[manual-setup]: https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md#step-0-github
403417
404-
[devcontainer-setup]: https://github.com/stdlib-js/stdlib/blob/87cbd67623892f90ddeea94e1d4e01eeada417b5/docs/devcontainer_setup.md
418+
[devcontainer-setup]: https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/setting_up_a_devcontainer.md
405419
406420
[devcontainer-issue]: https://github.com/stdlib-js/stdlib/issues/4934
407421

docs/contributing/setting_up_a_devcontainer.md

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Dev containers are Docker containers that are specifically configured to provide
3030

3131
The stdlib repository includes a preconfigured dev container, making it the easiest way to set up your development environment. It ensures proper linting, EditorConfig, and tooling are configured right from the start.
3232

33-
**Note:** The dev container does not yet support ARM64 architectures. For more information, or if you're interested in adding ARM64 support, you can visit this [issue][devcontainer-issue].
33+
**Note:** The dev container supports ARM64/Apple Silicon. The base Node.js development environment works on both x86_64 and ARM64 architectures. Some optional features (e.g., R, Julia) may have architecture-specific limitations. For issues or feedback, see this [issue][devcontainer-issue].
3434

3535
### Prerequisites
3636

@@ -113,6 +113,20 @@ If you see this when you open the terminal, then the dev container installation
113113
<br>
114114
</div>
115115

116+
<!-- FIXME: the following two empty sections are merely to satisfy the linter for `expected-html-sections` which cannot, atm, be turned off -->
117+
118+
<section class="usage">
119+
120+
</section>
121+
122+
<!-- /.usage -->
123+
124+
<section class="examples">
125+
126+
</section>
127+
128+
<!-- /.examples -->
129+
116130
<section class="links">
117131

118132
[git]: http://git-scm.com/

0 commit comments

Comments
 (0)