GithubHelp home page GithubHelp logo

pup's Introduction

git URL:

https://github.com/eelstork/PuP.git?path=/Assets/PuP

PuP - Crude (yet effective?) dependency management for Unity

Complete rewrite of PuP

Need a specific version?

Then the Git URL might look like:

https://github.com/eelstork/PuP.git?path=/Assets/PuP#v0.2.3-alpha

pup's People

Contributors

eelstork avatar

Stargazers

 avatar

Watchers

 avatar  avatar

pup's Issues

UI needs cleanup

  • Only need one editing package descriptor at any time.
  • Even then, first expand the package then only enable an "edit" button.
  • On pressing [x] do not delete the descriptor outright. Explain what will happen next, so the user can consider it more.

Safer "update on start"

Update on start should use a status token (could be a prefs key, or file). This is because, if updating packages crashed Unity, we do not want the update to re-run after reopening the editor.

Detect and manage potential duplicates

Use case:

  • Have embedded package (I mean, a package that's under Assets/ not sure this satisfies how UPM defines "embedded")
  • Have/adding a dependency, either via file or URL

A policy (or extension of the package policy) may be needed here, so that embedded packages can be auto-removed, or to the contrary PuP can endorse the embedded package.

On delete, only remove the package from requirements

Although it would be intuitive to uninstall a package when it is removed from requirements, this is not how PuP is intended to work, and is not helpful.

This is because PuP is designed to enforce dependencies for teams, not just locally.
Later delete option should add a message with options to clarify what the user want to do; and we may vary behavior for a local vs checked in requirements file.

Modifying package info, and what it does

Right now user can modify any package info, and this will have unintended side effects.
There's three ways to go
(1) The rebuild option but I don't know how sturdy this is going to be; also it may be practical for some projects, not others
(2) When the package info has changed, remove the package, then re-add the package.
(3) Disallow editing the package id; this compounds with the fact that packages are added by path, and so far I haven't really bothered chasing the id.

Options for managing local repos

With local repositories in spirit maintainers probably want to git their own thing, whereas consumers may need/want updates.
Not sure we can slice it around just a "I maintain this package" vs "I use the package option" but, use cases I'm considering:

  1. I maintain the package, and might welcome a reminder to push updates from time to time (a "push" shortcut may be handy for early phase projects)
  2. I consume the package, and willing to get regular updates (such as when the package is maintained by co-workers)
  3. I consume the package, not interested in updates other than manual (such as third party packages) and may prefer a warning when the package has been modified locally (local modifications to third party assets are usually an error, either signalling bad workflow or just accidental prefab modifications etc)

Apply vs Rebuild

Want a rebuild option to essentially ditch the current manifest, then re-add all PuP dependencies.

Fix malformed Git URLs

Can try educated guesses against UPM; perhaps the most common case is when someone copy-paste the git project home URL, which then suggests a couple of workable forms.

Add an option to rebuild the manifest

Handy at times! I feel this would be useful; sometimes broken packages can be a pain and having to manually remove them from the manifest is not fun.

Support complex project setup

We have a setup involving co-dependent repositories; details are a bit of out scope but this is likely to impact how we configure PuP.
Will update when I understand the case better, and have figured needed changes.

Support private packages

UPM does not explicitly support this, however private packages can be checked out via git, then linked as local packages. Borrow from Gittin?

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.