Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workflow View #1245

Open
JoelProminic opened this issue Jan 31, 2024 · 3 comments
Open

Workflow View #1245

JoelProminic opened this issue Jan 31, 2024 · 3 comments

Comments

@JoelProminic
Copy link
Contributor

We would like to add an interface to show common actions for the projects the user is working with.
image

Some use cases:

  • Common actions for the default project templates, focused on steps to get started with a working application
  • Custom instructions for shared projects and repositories. This should be a simplified version of the setup instructions provided in a README. Example

The goal is not to give the user a detailed set of steps - this wouldn't fit in the UI without significant redesign. Instead, we want a simplified list that can serve as a companion to a more detailed writeup, or as a reminder to user who has done the steps before.

The workflows would be configured like this:

  • In the Moonshine source, define default workflows for each project type. These would be displayed if a project of that type is open/selected.
  • Custom workflows for projects - these would generally be found in repositories to help guide the user through setting up or using the project.
  • Custom workflows outside of projects. These could be added from the parent directory when opening multiple projects, or they could be added manually. This use case is a bit strange with how we implemented workspace, so we could consider if we want to require users to put these workflows inside one of the projects instead.

For the workflow configuration files, we would define a file like moonshine-workflows.xml. These files should support multiple workflows. I am flexible on the format:

  • XML - we have used this before for moonshine-dependencies.xml
  • JSON
  • YML - More user readable. Do we have a parser in AIR/Haxe?

To help the user track their progress, we would like to have checkboxes for each entry, which can be set by the user as they go through the instructions. The checkbox statuses should be saved in a file, probably within the projects, so they will be preserved through:

  • Moonshine restarts/crashes
  • Closing and reopening the Workflow panel
  • Switching to another workspace and back
  • Switching between selected projects (if we choose to implement it this way - see below)

I think we should save the changes to separate files instead of to the workspace configuration files (when available). This will allow us to exclude the separate files so that we don't get undesired updates or conflicts on the workflow configuration file.

We should have a button to reset the checkboxes for a workflow, so that the user can easily start the steps again for actions that would be repeated (like build instructions).

In my screenshot, the Workflow panel shows workflows for all open projects. This allows to see all of the avaiable workflows at once, and a workflow that applies to multiple projects will still be visible when switching between the projects. However, it does use up more space, and may be messy if there are lots of projects in the workspace.

@Aszusz
Copy link
Collaborator

Aszusz commented Feb 2, 2024

@Aszusz

@JoelProminic
Copy link
Contributor Author

JoelProminic commented Mar 27, 2024

Here is an example repository-level workflow for discussion in today's meeting:

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <title>Moonshine-IDE Workflows</title>
    <workflows>
        <workflow>
            <title>Build Moonshine-IDE with Ant</title>
            <items>
            	<item>Install Flex, Haxe, Java, and Ant with Moonshine SDK Installer</item>
            	<item>Clone all project dependencies.</item>
            	<item>Update properties in MoonshineDESKTOPevolved\build\ApplicationProperties.xml</item>
            	<item>Run `ant deploy` in ide/MoonshineDESKTOPevolved/build</item>
            </items>
        </workflow>
        <workflow>
            <title>Build Moonshine-IDE Locally</title>
            <!-- From https://github.com/Moonshine-IDE/Moonshine-IDE/wiki/Running-Moonshine-instance-through-Moonshine-IDE -->
            <items>
            	<item>Install Flex, Haxe, and Java with Moonshine SDK Installer</item>
            	<item>Clone all project dependencies.</item>
            	<item>Update Additional Compiler Option in MoonshineDESKTOPevolved settings.</item>
            	<item>Fix paths in MoonshineDESKTOPevolved settings.</item>
            	<item>Comment out extensions in MoonshineDESKTOPevolved/src/MoonshineDESKTOP-app.xml</item>
            	<item>Replace "$isAppStoreVersion" with "false" in InstallConfig.xml under MoonshineSharedCore</item>
            	<item>Select MoonshineDESKTOPevolved and run Project > Build &amp; Run</item>
            </items>
        </workflow>
    </workflows>
</root> 

rat-moonshine pushed a commit that referenced this issue Apr 1, 2024
rat-moonshine pushed a commit that referenced this issue Apr 2, 2024
- Population of project-based workflows in new panel
#1245
- Moved actionbar into Haxe
#1246
@rat-moonshine
Copy link
Collaborator

Updates until now:

  • New plugin class for Workflows
  • Loading moonshine-workflows.xml from project directory if available
  • Workflows view
  • Populating tree from loaded XML
  • Saving selection to cookies
  • Restoring selection from cookies upon re-open

image

rat-moonshine pushed a commit that referenced this issue Apr 3, 2024
- Removal of workflows on project removal
- Adjustment into actionbar items' visibility
#1245 #1246
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment