Git Product home page Git Product logo

Comments (7)

beyondmeh avatar beyondmeh commented on August 26, 2024 2

I like the idea for code maintainability. It definitely isn't lost on me that piu could become quite a beast down the road to maintain. However, I think keeping the install process simple and having a single executable is essential. Along those lines, I would like to keep contributing as simple as possible to encourage others.

That said, using CI would solve the problem. I would like to keep it simple, say limiting itself to concatenating the files together based on placeholders in the main script, just so it's easy for new contributors to understand.

A third solution isn't as elegant, but it might be a stepping stone to CI. Using src/ and dist/ folders and using something akin to a Makefile. Building the script would be up to the committers, however this later could be part of the CI process. In this way, only the URL location to download piu would change.

Let me think about this for a little bit and see what would make the most sense. I'm definitely interested in splitting piu's logic into easy to manage components.

from piu.

scottdotau avatar scottdotau commented on August 26, 2024

Might be worthwhile to use GitHub releases for the executable (via CI concatenation) , and you can split the source up within the code.

That way nothing really changes from an end user perspective (just install latest release), you don't need to store a compiled version, and code base can be a bit more structured / maintainable

from piu.

beyondmeh avatar beyondmeh commented on August 26, 2024

@scottgearyau I like that idea for it's simplicity; not having to maintain a separate all-in-one script for the end user. I think I'll go that route.

Also, I wanted to state I haven't been on Github that much due to coworker passing from COVID. Things are very up in the air right now at my workplace as well as the emotional toll of loosing a close friend. As soon as things settle piu's development will continue. I am not abandoning it by any means.

from piu.

gtsop avatar gtsop commented on August 26, 2024

No worries mate, do whatever it takes so you are well again :)

from piu.

scottdotau avatar scottdotau commented on August 26, 2024

That's horrible, sorry to hear. Take it easy mate! I've forked and begun writing a simple build script (via Makefile) that can be worked on over time ☺

Edit: On second thoughts, might just convert to a bash script... doesn't make sense to add another dependency (no matter how common)?

from piu.

zen0bit avatar zen0bit commented on August 26, 2024

something like pmm from bedrock linux does..

Are you saw it?
I like it, maybe take a look for inspiration...

from piu.

beyondmeh avatar beyondmeh commented on August 26, 2024

Bedrock is pretty awesome, but this was the first time I looked behind the curtain, so to speak with pmm. I really like the idea.

Going forward I want some feedback on a monolithic vs. modular design for the future:

Assume we've already separated out each package manager's logic (apt, dnf, etc) into individual files:

Options:

  • A. Have all of the logic built-in
    • GitHub releases / CI would auto concat the separate files into one bash script
    • pro/cons: An all-in-one script, but development gets a little more complicated for the first time GitHub contributor
      • We don't necessarily need to do CI in which case the cons are a moot point
  • B. Pull logic from individual config files like pmm
    • those would still be distributed with piu, but there would need to be "installer logic" for lack of a better term to put them somewhere like ~/.config or /opt
    • pro/cons: Easier to develop, but we'd have to maintain an installer script
  • C. Do the above, but dynamically download it on first run (instead of distributing it with the download)
    • Note that the auto-detection logic is already in piu, there wouldn't need to be additional logic besides downloading the given config file
    • pro/cons: Development on our end is easier and piu is still easy to install for the user, but piu would be downloading config files from online
      • is that even a problem?

So I'd like to hear from everyone what direction they think we should take this.

from piu.

Related Issues (14)

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.