Skip to content

Commit 757cc84

Browse files
committed
updated software chapter for sp25
Signed-off-by: Konstantin Läufer <laufer@cs.luc.edu>
1 parent 71d52af commit 757cc84

1 file changed

Lines changed: 28 additions & 31 deletions

File tree

source/80-software.rst

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ Appendix: Course Software
44
-------------------------
55

66

7-
.. todo:: Not current! Under construction for spring 2025!
8-
97

108
You can choose either or both of the following options.
119

@@ -29,26 +27,22 @@ Cons
2927
- requires good network connection
3028
- might lack some code completion features
3129
- free plan might be underresourced (CPUs, RAM, disk space, etc.)
30+
- lack of integration with external GUI-based tools
3231

3332

34-
Gitpod (recommended)
35-
""""""""""""""""""""
36-
37-
Gitpod is a cloud-based development environment based on Visual Studio Code running on Ubuntu LTS.
33+
GitHub Codespaces (recommended)
34+
"""""""""""""""""""""""""""""""
3835

39-
To launch, visit `gitpod.io <https://gitpod.io>`_ and log in using your GitHub account.
36+
GitHub Codespaces is a cloud-based, containerized development environment based on Visual Studio Code running on Ubuntu LTS and closely integrated with GitHub.
4037

41-
- The first time around, create a new workspace and paste the URL of the GitHub project you want to work on in the new workspace; you can also select a project from the dropdown menu.
42-
- After that, your GitHub landing page will show your workspace(s); inactive workspaces are deleted after a certain amount of time.
43-
- For each new workspace, using the installed `SDKMAN! <https://sdkman.io>`_, perform a one-time installation of java and `sbt <https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Linux.html>`_;
44-
- In case your workspace no longer recognizes the `sbt` command, reinstall via the command
38+
To use Codespaces,
4539

46-
.. code-block:: console
40+
- log into using your GitHub account and navigate to the desired repository
41+
- look for the blue "code" button and open the drop-down menu
42+
- select the Codespaces tab
43+
- create a new Codespace for this repo or open an existing one already linked to this repo
4744

48-
sdk install sbt
49-
50-
- Install the VS Code extensions listed below.
51-
- Now you should be able to work on the project by following the instructions in the readme.
45+
For more information, please refer to `this reference <https://docs.github.com/en/codespaces>`_.
5246

5347

5448
Locally installed development environment
@@ -60,15 +54,15 @@ This option will give you an advanced development environment with code completi
6054
Pros
6155
""""
6256

63-
- provides powerful capabilities, including code completion
57+
- provides powerful capabilities, including code completion and refactoring
6458
- does not require network connection once installed
6559

6660

6761
Cons
6862
""""
6963

7064
- might be slow on older machines
71-
- need to maintain on each machine you use
65+
- need to maintain on each machine you use, but can use *settings sync* to keep settings and extensions consistent
7266
- it can be challenging to match the versions of the various packages
7367
- GitHub account access might be tedious to configure
7468
- possible difficulty managing coexisting Java versions
@@ -77,14 +71,14 @@ Cons
7771
Required packages
7872
"""""""""""""""""
7973

80-
- `Java 17 LTS recommended <http://www.oracle.com/technetwork/java/javase/downloads/>`_ (newer versions might have compatibility issues with certain sbt plugins)
74+
- `Java 21 LTS recommended <https://www.oracle.com/java/technologies/downloads/#java21>`_
8175
- `Git <http://git-scm.com/>`_ distributed version control system (usually preinstalled on Mac OS and Linux)
8276

8377
- recommended installation option on Windows: *Use Git and optional Unix tools from the Windows Command Prompt*
8478
- optional on any platform, especially when not an IDE: `some GUI-based Git client <https://git-scm.com/downloads/guis>`_
8579

86-
- `sbt <https://www.scala-sbt.org/1.x/docs/Setup.html>`_ Scala build tool
87-
- *Mac and Linux users are strongly encouraged to use* `SDKMAN! <https://sdkman.io/>`_ *to manage their Java, sbt, VisualVM, and other command-line development tools.*
80+
- `Maven <https://maven.apache.org/>`_ build and dependency management tool for the Java ecosystem
81+
- *Mac and Linux users are strongly encouraged to use* `SDKMAN! <https://sdkman.io/>`_ *to manage their Java, Maven, VisualVM, and other command-line development tools.*
8882

8983

9084
Choices of local development environments
@@ -93,18 +87,16 @@ Choices of local development environments
9387
- `Visual Studio Code <https://code.visualstudio.com/>`_ (recommended for PlusCal/TLA+ development, supports Java development)
9488

9589
- need to install the actively developed `TLA+ extension <https://github.com/tlaplus/vscode-tlaplus>`_
96-
- if you see false syntax errors in your Java source editor in an sbt project, try disabling the "Extension pack for Java" and related extensions for your current workspace
97-
- if you're not seeing arrows in the source file for running the tests, try importing the build in Metals (big "M" near the bottom of the leftmost column)
9890
- see below for recommended VS Code extensions
9991

10092
- `IntelliJ IDEA CE <https://www.jetbrains.com/idea/download/>`_ integrated development environment (alternative for Java development)
10193

102-
- has an unofficial TLA+ plugin
94+
- has unofficial Alloy and TLA+ plugins
10395
- check specific prerequisites for your platform
10496
- for the following steps, make sure you have no projects open and are looking at the welcome window as in the attached screenshot
105-
- *JDK configuration*: IntelliJ IDEA > Configure > Project Defaults > Project Structure > Platform Settings > SDKs > + > JDK > navigate to the installation directory of your Java 17 JDK > OK
97+
- *JDK configuration*: IntelliJ IDEA > Configure > Project Defaults > Project Structure > Platform Settings > SDKs > + > JDK > navigate to the installation directory of your Java 21 JDK > OK
10698

107-
- conventional text editor (OK for general development but not recommended for working with PlusCal/TLA+, though one can use them with the standalone `TLA Toolbox <http://lamport.azurewebsites.net/tla/tla.html>`_)
99+
- conventional text editor (OK for general development but not recommended for working with Alloy or PlusCal/TLA+, though one can use them with the standalone `TLA Toolbox <http://lamport.azurewebsites.net/tla/tla.html>`_)
108100

109101
- Emacs
110102
- vim
@@ -114,12 +106,17 @@ Choices of local development environments
114106
Recommended Visual Studio Code extensions and settings
115107
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
116108

109+
For consistency across VS Code installations, including Codespaces, enable settings sync using your GitHub or Microsoft/LUC account.
110+
117111
Install via the extensions tool in the VS Code toolbar:
118112

119-
- Scala/Metals - required for sbt-based Java projects
120-
- You should also disable the official Microsoft or Red Hat Java extensions while working on sbt-based Java projects
121-
- `TLA+ Nightly <https://github.com/tlaplus/vscode-tlaplus>`_ - required for model development and checking
122-
- Conceal - recommended for nicer rendering of mathematical symbols in TLA+ (see `here <https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions>`_ and `here <https://github.com/coq-community/vsc-conceal>`_ for instructions)
113+
- Live Preview
114+
- Live Share
115+
- Extension Pack for Java
116+
- Alloy
117+
- Alloy VSCode
118+
- TLA+
119+
- Conceal, recommended for nicer rendering of mathematical symbols in TLA+ (see `here <https://github.com/tonsky/FiraCode/wiki/VS-Code-Instructions>`_ and `here <https://github.com/coq-community/vsc-conceal>`_ for instructions)
123120

124121
When running VS Code locally, autosave isn't on by default, and you need to save your files manually: When there is a solid circle on the file's tab, it's not saved yet.
125122
I strongly recommend turning on autosave so your local instance of VS Code works the same way as browser-based instances:
@@ -142,7 +139,7 @@ GitHub
142139
- Get the `GitHub Student Developer Pack <https://education.github.com/pack/join>`_ using your official ``@luc.edu`` address. This will give you free unlimited private repositories.
143140
- Find and follow a few practitioners you respect. For example, I follow `these developers <https://github.com/klaeufer/following>`_. You'll probably recognize a number of them.
144141
- Review `these notes <https://guides.github.com/activities/contributing-to-open-source>`_ to understand the community-based development process.
145-
- For credit toward class participation, create some meaningful `GitHub issues <https://guides.github.com/features/issues>`_ and/or `GitHub pull requests <https://help.github.com/articles/using-pull-requests>`_ for one or more of our `course examples <https://github.com/lucproglangcourse>`_. (Make sure to navigate to the original repos as these forks do not have their own issue trackers). These can be functional or nonfunctional enhancements, requests for clarification, etc.
142+
- For credit toward class participation, create some meaningful `GitHub issues <https://guides.github.com/features/issues>`_ and/or `GitHub pull requests <https://help.github.com/articles/using-pull-requests>`_ for one or more of our `course examples <https://github.com/lucformalmethodscourse>`_. (Make sure to navigate to the original repos as these forks do not have their own issue trackers). These can be functional or nonfunctional enhancements, requests for clarification, etc.
146143
- To enhance your visibility in the professional community, start doing the same for some open-source projects you are interested in.
147144

148145
You may find both of these cheat sheets useful:

0 commit comments

Comments
 (0)