Yet another Windows development stack environment for unlucky Web developers
A modern, complete, portable and configurable Web development software stack environment for Windows
If you are a lucky developer, you should use FrontStack instead
- Easy to use
- Fully portable
- Automatic packages provisioning
- Configurable for your specific project runtime scenario
- Complete software stack for modern Web development and testing
- OS dependencies checker
- Auto-configured based on your existent environment variables
- Great isolation from the OS
- Support for environment updates with keeping all the user stuff
- Support both 32 and 64 bits OS
- Support Windows XP/Server 2003 or greater
- Easy to use from continous integration servers and deployment environments
-
Download the latest version
-
Uncompress the
zip
wherever you want -
Run
start.cmd
-
Put your code in the
workspace/
directory -
Start coding!
Aditionally, the following tools binaries are also provided
- cURL
- Putty
- SFTP client
- 7zip
- Bash with *UNIX binaries (port to Win32)
See PACKAGES file for more information about versions
By default, the following packages will be installed in the provisioning process
- bower@latest
- yeoman@latest
- grunt-cli@latest
- compass@latest
You can configure it from the package.ini
file
Aditionally, if you need to have custom packages that are not avalible from
npm or gem, you should put it in packages/
.
If your package has a bin/
directory, it will be automatically available from %PATH%
Aditionally, if your package need to define specific environment variables,
you should simply create a file called _setenv.bat
in the root folder of your package
You can easily uptade the whole software stack automatically when a new version is available
By default, yawds
checks for new versions on each start,
however you can do it manually running update.cmd
Note that the environment only will update stack/ directory. All the user configuration or packages installed will remain between updates
To use the isolated specific environment context variables from a continous integration server
or for specific purposes, you should simply
call from your batch the use_env.bat
script, located in ~\stack\scripts\
If you are a devops guy or an architect, yawds
allows you to provide and easily configure a development environment for the projects you happy owns
You can provide a pre-configured environment for a specific execution environment, for example, setting a pre-defined http proxy environment variable or custom packages installation according to your project packages dependencies
-
Clone/fork this repository
-
Download the latest version
-
Unzip it in
environment\
overriding (or erase it, preferably) the directory contents -
Customize
environment.ini
andpackages.ini
(both are commented in-line) -
Run
scripts\release.bat
You may customize VERSION
and CHANGELOG
files with you own project information
There are two configuration files you can adapt to your needs: environment.ini
and packages.ini
Note that you should comment or remove the options you do not need
[general]
name = YAWDS development environment
shortname = YAWDS
prompt = [yawds %YAWDS_VERSION%] $P $_$G$S
console_color = 2
[requisites]
;; requires git must be installed in the system
git = true
[install]
;; display a custom welcome message on install process
message = Welcome to YAWDS development environment
;; set true if the user computer need to be authenticated
;; to access to network resources, like source repositories
force_auth = false
;; set true if the user computer will be always behind a Web proxy
force_proxy = false
[install.ask]
;; ask the user about his network auth credentials
auth = false
auth_confirm = Do you want to enter your <company> credentials?
auth_username = Please, enter your <company>'s user credentials
;; ask the user about proxy auth credentials
proxy_auth = true
;; ask to configure git config (user, email and credentials storage)
git = true
[proxy]
;; from this section you can force set by default the web proxy
;; configuration, avoiding to ask the user to enter it
http_proxy=http://proxy:3128
https_proxy=http://ssl.proxy:3128
no_proxy=.company,.google.com
[update]
enabled = true
check_url = https://raw.github.com/AdesisNetlife/yawds/master/environment/stack/VERSION
check_url_auth = false
check_on_startup = true
[scripts]
;; custom execution scripts, with relative path from stack/ directory
after_start=scripts\post_start.bat
after_install=scripts\post_install.bat
Tell to yawds
what should be instaled during the environment
provisining process.
Example configuration file:
;; define the relative path for node or ruby packages installtion
;; you probably do not need to change this option
install_dir = packages
[provision]
;; enable/disable packages provisioning
enabled = true
;; this option allows to force to update Node/Ruby packages
;; from latest versions on each environment start
keep_updated = false
[npm]
bower = latest
grunt-cli = latest
yo = latest
[gem]
compass = latest
You can aditionally create a provision.lock
file in the stack\
directory if you want
to permanently disable the provisioning or packages update process
yawds
provides support for automatic software stack updates, checking new versions from
a remote ini
file accesible via HTTP.
When a new version is available, yawds
ask the user to process with the update
You should create a well-formed ini
like a version manifest file,
and make it available from a HTTP server
The file must be called VERSION
and it must exists in the stack/
folder
Here is a complete file example with the supported values:
version = 0.1.0
download = http://downloads.mycompany.com/environment-latest.zip
release_notes_url = https://downloads.mycompany.com/environment-release-notes.txt
download_auth = false
post_update_script = scripts\post_update.bat
Only
zip
and7z
compression formats are supported
If you cannot use global installed packages, like grunt or bower, you must check if you have
.npmrc
in your user home directory (%USERPROFILE%
) and then remove the prefix
option.
This trouble seems to be related to npm, since it tries to resolve npmrc config files
in common paths like user home directory.
Yawds forces to define the userconfig
config value on each environment start,
which defines the npm user config path, however npm always looks in the user home and load this config.
You can't have cross-enviroment npm config options at this time, sorry! It was created the #4 issue about this trouble
If you experiment some issue, please feel free to open an Github issue reporting it
Note that yawds
is still a beta version
- Improve configuration documentation
- Read
ini
config instead of write and read environment variables from node scripts - Self-contained Git?
- Support more packages pre-requisites (others SCM, specific binaries)
- Performs all the setup and configuration from node scripts
- Better isolation in batch script variables
Copyright 2014 Adesis Netfile S.L and contributors
Released under MIT license