summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJohn W. Parent <45471568+johnwparent@users.noreply.github.com>2024-09-20 14:55:17 -0400
committerGitHub <noreply@github.com>2024-09-20 11:55:17 -0700
commitcfee88a5bb56a1c8ec892879e04cb6a17c4f9404 (patch)
tree507d9029e530178e66aaf873ad1c247a91693ba6 /lib
parent7711730f2cfb167a93d93577a0ca180325ccbd0d (diff)
downloadspack-cfee88a5bb56a1c8ec892879e04cb6a17c4f9404.tar.gz
spack-cfee88a5bb56a1c8ec892879e04cb6a17c4f9404.tar.bz2
spack-cfee88a5bb56a1c8ec892879e04cb6a17c4f9404.tar.xz
spack-cfee88a5bb56a1c8ec892879e04cb6a17c4f9404.zip
Docs/Windows: Clarify supported shells and caveats (#46381)
While the existing getting started guide does in fact reference the powershell support, it's a footnote and easily missed. This PR adds explicit, upfront mentions of the powershell support. Additionally this PR adds notes about some of the issues with certain components of the spec syntax when using CMD.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/docs/basic_usage.rst11
-rw-r--r--lib/spack/docs/getting_started.rst31
2 files changed, 20 insertions, 22 deletions
diff --git a/lib/spack/docs/basic_usage.rst b/lib/spack/docs/basic_usage.rst
index 69cbefc083..171a82b6ea 100644
--- a/lib/spack/docs/basic_usage.rst
+++ b/lib/spack/docs/basic_usage.rst
@@ -1175,6 +1175,17 @@ unspecified version, but packages can depend on other packages with
could depend on ``mpich@1.2:`` if it can only build with version
``1.2`` or higher of ``mpich``.
+.. note:: Windows Spec Syntax Caveats
+ Windows has a few idiosyncrasies when it comes to the Spack spec syntax and the use of certain shells
+ Spack's spec dependency syntax uses the carat (``^``) character, however this is an escape string in CMD
+ so it must be escaped with an additional carat (i.e. ``^^``).
+ CMD also will attempt to interpret strings with ``=`` characters in them. Any spec including this symbol
+ must double quote the string.
+
+ Note: All of these issues are unique to CMD, they can be avoided by using Powershell.
+
+ For more context on these caveats see the related issues: `carat <https://github.com/spack/spack/issues/42833>`_ and `equals <https://github.com/spack/spack/issues/43348>`_
+
Below are more details about the specifiers that you can add to specs.
.. _version-specifier:
diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst
index 4cbd1efee7..7bcb7b178d 100644
--- a/lib/spack/docs/getting_started.rst
+++ b/lib/spack/docs/getting_started.rst
@@ -1475,16 +1475,14 @@ in a Windows CMD prompt.
Step 3: Run and configure Spack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-To use Spack, run ``bin\spack_cmd.bat`` (you may need to Run as Administrator) from the top-level spack
-directory. This will provide a Windows command prompt with an environment properly set up with Spack
-and its prerequisites. If you receive a warning message that Python is not in your ``PATH``
+On Windows, Spack supports both primary native shells, Powershell and the traditional command prompt.
+To use Spack, pick your favorite shell, and run ``bin\spack_cmd.bat`` or ``share/spack/setup-env.ps1``
+(you may need to Run as Administrator) from the top-level spack
+directory. This will provide a Spack enabled shell. If you receive a warning message that Python is not in your ``PATH``
(which may happen if you installed Python from the website and not the Windows Store) add the location
of the Python executable to your ``PATH`` now. You can permanently add Python to your ``PATH`` variable
by using the ``Edit the system environment variables`` utility in Windows Control Panel.
-.. note::
- Alternatively, Powershell can be used in place of CMD
-
To configure Spack, first run the following command inside the Spack console:
.. code-block:: console
@@ -1549,7 +1547,7 @@ and not tabs, so ensure that this is the case when editing one directly.
.. note:: Cygwin
The use of Cygwin is not officially supported by Spack and is not tested.
- However Spack will not throw an error, so use if choosing to use Spack
+ However Spack will not prevent this, so use if choosing to use Spack
with Cygwin, know that no functionality is garunteed.
^^^^^^^^^^^^^^^^^
@@ -1563,21 +1561,12 @@ Spack console via:
spack install cpuinfo
-If in the previous step, you did not have CMake or Ninja installed, running the command above should bootstrap both packages
+If in the previous step, you did not have CMake or Ninja installed, running the command above should install both packages
-"""""""""""""""""""""""""""
-Windows Compatible Packages
-"""""""""""""""""""""""""""
+.. note:: Spec Syntax Caveats
+ Windows has a few idiosyncrasies when it comes to the Spack spec syntax and the use of certain shells
+ See the Spack spec syntax doc for more information
-Not all spack packages currently have Windows support. Some are inherently incompatible with the
-platform, and others simply have yet to be ported. To view the current set of packages with Windows
-support, the list command should be used via `spack list -t windows`. If there's a package you'd like
-to install on Windows but is not in that list, feel free to reach out to request the port or contribute
-the port yourself.
-
-.. note::
- This is by no means a comprehensive list, some packages may have ports that were not tagged
- while others may just work out of the box on Windows and have not been tagged as such.
^^^^^^^^^^^^^^
For developers
@@ -1588,5 +1577,3 @@ Python, Git, and Spack, instead of requiring the user to do so manually.
Instructions for creating the installer are at
https://github.com/spack/spack/blob/develop/lib/spack/spack/cmd/installer/README.md
-Alternatively a pre-built copy of the Windows installer is available as an artifact of Spack's Windows CI
-available at each run of the CI on develop or any PR.