Synectics is a problem solving methodology that stimulates thought processes of which the subject may be unaware (Wikipedia). Synectic IDE is a fundamentally different type of IDE, focused on supporting a human-oriented view of problem solving in software development. Synectic promotes context-specific functionality that compliments and enhances human cognition, memory, and reasoning. As a research prototype, this software has no expressed warranty or guarantees and should be treated as experimental software.
The rationale and principles that guide the design of Synectic can be found in DESIGN. The complete set of programming languages, tools, bundlers, packagers, frameworks, and plugins included in Synectic, along with the configuration requirements, can be found in ARCHITECTURE. Synectic is released under an MIT license, which can be found in LICENSE.
Versioning within this project adheres to the rules of Semantic Versioning 2.0.0.
Synectic requires the host system to have Git installed and available in order to natively execute git commands (version 2.5+ is recommended for git worktree
support).
This is experimental research software, and is not intended for use in production environments. As such, we are not able to purchase signing keys for Windows and macOS. This means that you will see a warning when installing Synectic on Windows and macOS. You will need to click through the warning to install Synectic. If you are not comfortable with this, please do not install Synectic.
See the Installation Guide for guidance on using unsigned builds of Synectic.
To install Synectic from source, use the following steps:
-
Install Node.js.
-
Install Yarn Package Manager (
npm
/npx
can also be used, butyarn
is preferred). -
Clone this repository:
git clone git@github.com:EPICLab/synectic.git
-
Move into the project root directory:
cd synectic
-
Install project dependencies:
yarn install
-
Build and start Synectic:
yarn start
Make sure to follow the Source Installation instructions before using the CLI. The following commands can be used from within the project root directory:
yarn start
- The command will build the main process, preload scripts and renderer source code, and start the Electron app to preview.yarn dev
- The command will build the main process and preload scripts source code, and start a dev server for the renderer, and finally start the Electron app.yarn build
- The command will build the main process, preload scripts and renderer source code. Usually before packaging the Electron application, you need to execute this command.yarn bundle
- The command will execute the same steps asyarn build
, but afterwards will call the Conveyorsite
task to generate the online update repository along with a static download page.yarn format
- The command formats all files supported by Prettier in the current directory and its subdirectories.yarn clean
- The command will delete theout
directory, which is generated by theyarn start
andyarn build
commands.
We use the recommended project structure of the electron-vite
project, which means that the following convention is used:
.
├──src
│ ├──main
│ │ ├──index.ts
│ │ └──...
│ ├──preload # git native wrappers
│ │ ├──index.ts
│ │ └──...
│ └──renderer # react components
│ ├──src
│ ├──index.html
│ └──...
├──electron.vite.config.ts
├──package.json
├──types
└──...
The only deviation is the inclusion of a top-level types
directory, which contains TypeScript type definitions for the project. The src
directory contains the source code of the project, and the electron.vite.config.ts
file contains the configuration for the electron-vite
bundler. The package.json
file contains the project metadata and the scripts used to build and run the project.
When the yarn start
or yarn build
commands are executed, the out
directory is generated. However, if the yarn dev
command is executed there will be no out/renderer
directory generated, and instead the src/renderer
directory will be used directly (to allow fast HMR during development). The output structure will look like this:
.
├──out
│ ├──main
│ │ ├──index.js
│ │ └──...
│ ├──preload
│ │ ├──index.js
│ │ └──...
│ └──renderer
│ ├──assets/
│ ├──index.html
│ └──...
├──src
├──electron.vite.config.ts
├──package.json
├──types
└──...
Installation is required; see CLI for installation instructions. The following commands can be used from within the project root directory:
yarn release
- executesyarn version
plugin to initiate a major semver version bump, generate a new version.js usinggenversion
, stage and commit all relevant version files, generate a new annotated Git tag, and atomically push changes to the remote repository to trigger GitHub Actions.
We welcome contributions to this open source project on Github. When contributing, please follow the Contributing Code Guide. Also, any new contributors should include a commit that updates this README.md
document to include your name and a link to your GitHub profile page (unless you wish to be anonymous).
- Nicholas Nelson (@nelsonni)
- Andrea Tongsak (@andrealit)
- Jett Seale (@jettseale)
- Brandon Dring (@El_Dringo_Brannde)
- Marjan Adeli (@Marjan-Adeli)
- Hayden Coffey (@hcoffey1)
- Lauren Gastineau (@laurengastineau)
- Samarendra Hedaoo (@knightsamar)
Footnotes
-
Contributor images made with contrib.rocks. ↩