All Projects → ls1intum → Orion

ls1intum / Orion

Licence: MIT license
Plugin integrating Artemis programming exercises into IntelliJ

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Orion

intellij-background-chibichara
drawing plugin chibichara coner of your editor, for intellij etc
Stars: ✭ 53 (+140.91%)
Mutual labels:  intellij
previewjs
Preview UI components in your IDE instantly
Stars: ✭ 1,331 (+5950%)
Mutual labels:  intellij
android-studio-plugin
Integrate your Android project with Crowdin
Stars: ✭ 52 (+136.36%)
Mutual labels:  intellij
intellij-kubernetes
Kubernetes (and OpenShift) language support for IntelliJ IDEA
Stars: ✭ 26 (+18.18%)
Mutual labels:  intellij
ReactPropTypes-Plugin
A Jetbrains Plugin for react PropTypes
Stars: ✭ 62 (+181.82%)
Mutual labels:  intellij
CpuUsageIndicator
IntelliJ plugin https://plugins.jetbrains.com/plugin/8580?pr=idea
Stars: ✭ 19 (-13.64%)
Mutual labels:  intellij
san-jose-theme
A custom Terminal & IntelliJ theme (inspired by PatMurrayDEV -> Apple's WWDC 2017 session slides)
Stars: ✭ 64 (+190.91%)
Mutual labels:  intellij
intellij-cue
IntelliJ support for the CUE language.
Stars: ✭ 23 (+4.55%)
Mutual labels:  intellij
ycy-intellij-plugin
Programmer Motivator: Chaoyue Yang for IntelliJ Platform
Stars: ✭ 100 (+354.55%)
Mutual labels:  intellij
ginkgo4j
A Java BDD Testing Framework (based on RSpec and Ginkgo)
Stars: ✭ 25 (+13.64%)
Mutual labels:  intellij
intellij-ron
A plugin that adds RON (Rusty Object Notation) support to IntelliJ IDEA
Stars: ✭ 26 (+18.18%)
Mutual labels:  intellij
JetBrainsCopilot
✈️ IDE plugin for the IntelliJ platform which adds GitHub Copilot support. (VERY WIP)
Stars: ✭ 155 (+604.55%)
Mutual labels:  intellij
intellij-idea-community
Unofficial .deb packages of IntelliJ IDEA Community Edition. This is a mirror of
Stars: ✭ 32 (+45.45%)
Mutual labels:  intellij
TranslationPlugin
Translation plugin for IntelliJ based IDEs/Android Studio/HUAWEI DevEco Studio.
Stars: ✭ 9,375 (+42513.64%)
Mutual labels:  intellij
IDEProjectConverter-Java
Convert Java Projects created in IntelliJ to Netbeans.
Stars: ✭ 34 (+54.55%)
Mutual labels:  intellij
watchdog
IntelliJ & Eclipse plugin for monitoring how Java applications are developed and tested
Stars: ✭ 18 (-18.18%)
Mutual labels:  intellij
AppleScript-IDEA
AppleScript support for IntelliJ IDEs
Stars: ✭ 21 (-4.55%)
Mutual labels:  intellij
httpyac
Command Line Interface for *.http and *.rest files. Connect with http, gRPC, WebSocket and MQTT
Stars: ✭ 103 (+368.18%)
Mutual labels:  intellij
JetTunes-Desktop-Music-Player
Material design music player made with javafx
Stars: ✭ 36 (+63.64%)
Mutual labels:  intellij
railways
A plugin for RubyMine and IntelliJ IDEA Ultimate that adds a panel with routes of Ruby on Rails application.
Stars: ✭ 44 (+100%)
Mutual labels:  intellij

Orion IntelliJ Plugin

Open Artemis IDE plugin for the programming exercise integration. This plugin integrates the Artemis interactive learning platform into the IntelliJ IDE. It allows you to directly import programming exercises from Artemis and submit your changes to the build servers.

Detailed documentation is integrated into Artemis' documentation.

Current Version:
GitHub release (latest by date)

Example Usage

Manual Installation

Download the release from here and install it as described further down in this document.

Planned Features

We want to integrate the following features into the plugin:

  • Integration of the JetBrains Edu Tools
  • Support for team exercises
  • Automatic conflict resolution

Development

Run/Debug the Plugin

  • Import as gradle project
  • Select the JBR >11.0.3 as the project SDK with language level 11
  • Run Gradle task: runIde. This will open a new IntelliJ window with the plugin installed.

Perform Version Upgrade

Upon release of a new mayor IntelliJ version, the plugin needs to be upgraded to support the new version. This upgrade can oftentimes also be performed without much knowledge of the codebase. In the following, the necessary steps are outlined:

  1. If you do not have write access to the GitHub repository, fork the repository and clone it
  2. Make sure you are able to run the plugin locally as described above
  3. Adapt the versions in the build configuration file build.gradle.kts
    1. At intellij, change the version property to the latest version. This is the IntelliJ version used for "runIde". Also adapt the version numbers of all versioned plugins at intellijplugins. You can look up each plugin in the IntelliJ marketplace and find the latest compatible version there.
    2. At taskspatchPluginXml, change the sinceBuild and untilBuild property accordingly, the format is explained in a comment there.
    3. Optionally upgrade the versions of the dependencies at plugins and dependencies, however this is usually not necessary.
  4. Run the project locally with runIde or buildPlugin. If compilation errors happen, try to resolve them; on version changes, IntelliJ sometimes deprecates APIs or moves packages. Fixing these errors requires looking into and changing the code. A very helpful resource is the documentation of the IntelliJ Platform SDK.
  5. When the plugin runs locally, create a pull request with your changes. Also consider notifying a maintainer of Orion or Artemis to make sure your pull request gets noticed.

Testing of Pull Requests

  1. Download Release (.zip)

    Download the release file from the pull request's ChecksArtifactsorion

    The artifact is unavailable during building. The full history of artifacts can be retrieved though the Actions tab

  2. Install Release (.zip)

    Install the release file in IntelliJ at SettingsPluginsSettingsInstall Plugin from Disk... → Select the file

    Installation process as gif

Publish a new Release

Before you release any new version, make sure that all version properties in the repository are updated (version in build.gradle.kts) and the changelog contains the relevant version information (also in build.gradle.kts)

Follow the steps outlined here:

  1. Go to the GitHub "Actions" tab on the Orion repository
  2. Select the "Release" workflow
  3. Click on "Run workflow" and input the new version number to release (e.g. 1.5.0 releases and tags version v1.5.0)
  4. An admin now has to review and accept the new release by viewing the created workflow run
  5. After the release is approved, GitHub will automatically build and upload the artifact. It will also create a new draft GitHub release
  6. An admin needs to promote the GitHub draft release in order to properly tag and release the latest build on GitHub.
    1. Go to the releases page and open the generated latest draft release of Orion
    2. Update the changelog by copy-pasting the information into the description box
    3. Click on 'Publish release' to finish the process

The latest plugin artifact is now available on both GitHub and via the JetBrains marketplace.

It might take some time for the latest version to be seen on the marketplace since JetBrains still has to review and approve the changes!

Release Process Implementation

How can I modify the pipeline?

The release pipeline is fully implemented using GitHub actions. In order to change anything about the process you just have to edit the release.yml in the .github/workflows directory.

Where can I find secrets like the authentication token for the JetBrains repository?

Admins of the GitHub repository can modify the build environment under Settings -> Environments -> prod. This includes adding and updating any secrets that should get injected into the environment during the build process.

Feedback? Questions?

Email: alexander(dot)ungar(at)tum(dot)de

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].