Coder Social home page Coder Social logo

winbench / bench Goto Github PK

View Code? Open in Web Editor NEW
19.0 19.0 3.0 4.01 MB

Portable Software Environment for Windows

Home Page: https://winbench.org

License: MIT License

PowerShell 6.74% Batchfile 0.45% C# 92.78% HTML 0.02%
bench development-environment package-manager portable software-environment windows

bench's People

Contributors

mastersign avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

bench's Issues

Registry Isolation

Apps like pgAdmin III or Putty store their configuration in the registry.
It would be helpful to provide a generic mechanism to backup and restore registry keys before and after the execution of an app.

PHP Pear Packages

Support PHP Pear packages in the same way as NPM and PIP packages.

Eclipse is not running without JDK

Eclipse has no dependency to the JDK 7 or 8 because both are optional for different Java development environments. But Eclipse PHP and CDT are not running without at least a JRE.

PySide

GUI programming with Python and QT.

GIMP

Add GIMP as an app for bitmap oriented image editing to accompany Inkscape.

Split app type `python-package` into `python2-package` and `python3-package`

Because the Python 2 and Python 3 ecosystems are quite separate, the app type should reflect the major version.
This distinction at the level of app types would resolve the ambiguity, which arises in some cases, when apps refer to Python and its paths.
Further, it would remove the additional complexity, caused by the special app property PythonVersions.

Launcher

Management script for creating Windows shortcuts for apps, which are usally not called from command line.

The shortcuts should all be created on one folder. They must call a wrapper batch script, which loads the Bench environment and passes all arguments to the application executable. The launcher should work as Drag&Drop targets (passing dropped files as arguments to the app).

Fix initial npm setup

After installing NpmBootstrap, the update to a recent npm version fails without any visible error. But subsequent installed npm packages complain about the old npm.

Leiningen Profile

Leiningen is using the Windows user home directory for the local repository <user-profile>\.m2\repository instead of the Bench home directory.

It may possible to adjust the local repository path with a profiles.clj in %HOME%\.lein.

C/C++ Compiler

A mature way to support C/C++ projects without Microsoft Visual Studio installed.

Ideally with an IDE like Eclipse CDT.

Maven Settings

Maven uses the Java windows registry to determine the user home directory.
Therefore, it is not redirected into the Bench home via the environment variables HOME or USERPROFILE.

Additionally Maven probably ignores the environment variables http_proxy and https_propxy.

Because Maven looks into the windows user home directory for user specific settings <user-profile>/.m2/settings.xml and does not see the Bench home, the global settings in mvn/conf/settings.xml must be overridden during the environment setup step to adapt the Maven settings.
The elements localRepository and proxies must be set with the content according to the Bench configuration.

Still, if the windows user has a <user-profile>/.m2/settings.xml it takes precedence.

bench.bat is broken

Executing bench.bat downloads and unzipps the bench archive from GitHub, but it does not start the setup process.

Clean way for actions in project context

  1. There are actions and some of them have the prefix project- and they present a menu to select a project
  2. There are two scripts archive.cmd and editor.cmd which represent actions in a project context

Currently only the second scripts are on the path. There should be a self-explanatory way to access actions for a specific project context and for the current project context.

Adorned Execution

A mechanism to run a script before the start and after the exit of an executable.

The mechanism must be configurable for any app with a property, specifying the executables, which must be run with the proxy scripts.

Ruby Gems

Support Ruby Gems in the same way as NPM and PIP packages.

Project Management

  • Project index with Git remotes
    • Project groups
    • Project activation (git clone) and deactivation (wipe if git status is clean)
    • Automatic dependency download (lein deps, npm install, bower install, ...)
  • Improved dashboard for projects
    • with project bound actions (activate, deactivate, editor, shell, tasks)
    • create new project with different kinds of scaffolding (lein new, npm init, yo xyz, ...)

Do not manage the bench environment via Git

  • It is more robust to depend on Git only as app and not as integral component of bench
  • The update of the bench environment is more simple and more transparent via ZIP download
    then with Git pull
  • The complexity of nested Git repos is avoided per default
    (project repos inside the bench working copy)

Do not resolve app prop Exe with a search through Path but with Dir

The app property Path is a list of paths to register.
The app property Exe points to the main executable, used to check the apps existence and the target of the app launcher.
The resolution of a relative path in the Exe property, should be based on the Dir property and not on a search through the Path list, because this can cause ambiguity.

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.