Giter Site home page Giter Site logo

sunnyform's Introduction

SunnyFORM

SunnyFORM is an experimental CastFORM Windows Installer project.

CastFORM v1.0.0 through v2.0.1 was built via iExpress and while this was serviceable, it was also clearly lacking many creature comforts like the ability to uninstall (rather than manually deleting the install folder).
SunnyFORM aims to improve upon this by leveraging on Windows Installer to provide an installation experience that is more aligned with the expectations of users.

At the moment, WiX v4 is still very new, and its documentations are still in development. As such, this repository currently aims to adapt their presently available documentation for Flutter projects as our MVP. As FireGiant puts out new documentation, we will revisit and continue to refine this repository to provide more comprehensive instructions, as well as a more pleasing UI.

You may find the official tutorial here, and the official docs here.

A rose by any other name would smell as sweet

SunnyFORM is designed as a part of the toolchain for CastFORM, a Pokémon registration sheet filler.
Being a form-automation application based around Pokémon TCG, CastFORM is a play on words using the name of one of the playable Pokémon.
This project inherits its name from Castform's forms, which changes depending on the weather: under harsh sunlight, Castform will be in its Sunny Form and be a Fire-type Pokémon.

Tech Stack

Our test bench is set up with the following dependencies:

  • Visual Studio Community 2022 v17.8.1
  • .NET SDK 8 (via Visual Studio)
  • HeatWave for VS2022 v1.0.2 (Visual Studio extension)
    • This is the name on the Visual Studio marketplace
    • FireGiant which produces both WiX and HeatWave calls this version HeatWave Community Edition instead
  • WiX Toolset v4 (HeatWave obtains this from nuget - no installation needed)

WiX supports a number of interfaces including CLI - we decided to go with the Visual Studio approach for dealing with WiX, so we grabbed the HeatWave extension.

At the time of writing, we are letting HeatWave and WiX generate GUIDs instead of managing them manually. Should we want to micromanage this in the future, we will probably use the New-Guid PowerShell cmdlet to generate new GUIDs.

Usage Guides

How To Use SunnyFORM

  1. Run flutter build windows, and note CastFORM version
  2. Clone the repository, and open in Visual Studio. Set the build configuration to x64 (required for Flutter).
  3. In the top toolbar go to Project > Properties > Build, and modify the absolute paths for Fluttter build output and Visual C++ Redistributable libraries directories
  4. Navigate to Package.wxs, and under the Packagetag, update the version number attribute
  5. Check if the the folder structure in CastFORM/build/windows/runner/Release has changed, and update Folders.wxs accordingly
  6. Check if the file structure has changed, and update AppComponents.wxs accordingly
  7. In the top toolbar got to Build > Build Solution
  8. Go to Installer/bin/x64/Release/en-US to find CastFORM_Installer_x64.msi and upload that to the CastFORM releases page

How To Use HeatWave for Flutter Projects

This section has been migrated to its own repository.

Common Errors and Gotchas

This section has been migrated to its own repository.

Disclaimer

SunnyFORM is an open-source project for creating CastFORM installers for the Windows platform.
SunnyFORM is part of the developer toolchain created for CastFORM.
SunnyFORM is non-monetised, and provided as is. Every reasonable effort has been taken to ensure correctness and reliability of Weather Ball. We will not be liable for any special, direct, indirect, or consequential damages or any damages whatsoever resulting from loss of use, data or profits, whether in an action if contract, negligence or other tortious action, arising out of or in connection with the use of SunnyFORM (in part or in whole).

sunnyform's People

Contributors

kookiiestudios avatar

Stargazers

 avatar

sunnyform's Issues

Missing Start Menu shortcuts

Abstract

I already have portable builds of CastFORM on my system, so when i was doing testing, Windows showed that when i searched the Start menu. I had erroneously thought that this meant WiX added a shortcut automatically.

Tasks

  • Add components-wrapped Directory objects to Folder.wxs for start menu directory structure Not required since we're using a BAA Studios folder for it - switched to using standard directory variable
  • Add ComponentGroup to AppComponents.wxs for shortcut components Not required any more, since it's now piggyback on the application entry point
  • Add component-wrapped File object to component group Not required any more, since it's now piggyback on the application entry point
  • Check to see if manual input of registry key is still required for WiX v4 - update: not required if shortcut advertisement is allowed
  • Add component group to Package.wxs Not required any more, since it's now piggyback on the application entry point

Add GUI

Requirements

  • Mondo GUI edit: switch to feature tree
  • EULA (same as CastFORM README)
  • Architecture check (Flutter for Windows is 64-bit only) - 25df5c7
  • Full vs Custom install (i.e. vcredist optional)
  • Completion dialog message
  • Test
  • Refine artwork

Refactor feature tree

Convert to fragment in a dedicated features wxs file.

This is such that the Package.wxs will end up only needing to worry about the UI instead of needing to know what feature installs what components.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.