You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/80-software.rst
+28-31Lines changed: 28 additions & 31 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,6 @@ Appendix: Course Software
4
4
-------------------------
5
5
6
6
7
-
.. todo:: Not current! Under construction for spring 2025!
8
-
9
7
10
8
You can choose either or both of the following options.
11
9
@@ -29,26 +27,22 @@ Cons
29
27
- requires good network connection
30
28
- might lack some code completion features
31
29
- free plan might be underresourced (CPUs, RAM, disk space, etc.)
30
+
- lack of integration with external GUI-based tools
32
31
33
32
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
+
"""""""""""""""""""""""""""""""
38
35
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.
40
37
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,
45
39
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
47
44
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>`_.
52
46
53
47
54
48
Locally installed development environment
@@ -60,15 +54,15 @@ This option will give you an advanced development environment with code completi
60
54
Pros
61
55
""""
62
56
63
-
- provides powerful capabilities, including code completion
57
+
- provides powerful capabilities, including code completion and refactoring
64
58
- does not require network connection once installed
65
59
66
60
67
61
Cons
68
62
""""
69
63
70
64
- 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
72
66
- it can be challenging to match the versions of the various packages
73
67
- GitHub account access might be tedious to configure
74
68
- possible difficulty managing coexisting Java versions
@@ -77,14 +71,14 @@ Cons
77
71
Required packages
78
72
"""""""""""""""""
79
73
80
-
- `Java 17 LTS recommended <http://www.oracle.com/technetwork/java/javase/downloads/>`_ (newer versions might have compatibility issues with certain sbt plugins)
- *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.*
88
82
89
83
90
84
Choices of local development environments
@@ -93,18 +87,16 @@ Choices of local development environments
93
87
- `Visual Studio Code <https://code.visualstudio.com/>`_ (recommended for PlusCal/TLA+ development, supports Java development)
94
88
95
89
- 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)
98
90
- see below for recommended VS Code extensions
99
91
100
92
- `IntelliJ IDEA CE <https://www.jetbrains.com/idea/download/>`_ integrated development environment (alternative for Java development)
101
93
102
-
- has an unofficial TLA+ plugin
94
+
- has unofficial Alloy and TLA+ plugins
103
95
- check specific prerequisites for your platform
104
96
- 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
106
98
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>`_)
108
100
109
101
- Emacs
110
102
- vim
@@ -114,12 +106,17 @@ Choices of local development environments
114
106
Recommended Visual Studio Code extensions and settings
For consistency across VS Code installations, including Codespaces, enable settings sync using your GitHub or Microsoft/LUC account.
110
+
117
111
Install via the extensions tool in the VS Code toolbar:
118
112
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)
123
120
124
121
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.
125
122
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
142
139
- 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.
143
140
- 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.
144
141
- 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.
146
143
- To enhance your visibility in the professional community, start doing the same for some open-source projects you are interested in.
0 commit comments