Unpoly 2
Unobtrusive JavaScript framework for server-side applications
Unpoly enables fast and flexible frontends with minimal changes to your server-side code.
This repository is home to both the Unpoly 2 JavaScript code and its (optional) bindings for Ruby on Rails (unpoly-rails
gem).
If you're looking for the code of Unpoly 0.x or 1.0, use the 1.x-stable
branch.
Getting started
- See unpoly.com for guides and documentation.
- See installation instructions for many different package managers and languages.
- See
CHANGELOG.md
for notable changes. - See
README_RAILS.md
documentation of the Rails bindings.
Development
Running tests
Overview:
- This currently requires Ruby
- There's a Rails app in
spec_app
- Jasmine tests for Unpoly live in
spec_app/spec/javascripts
- RSpec tests for the
unpoly-rails
gem live inspec_app/spec/controllers
Install dependencies for tests:
- Install Ruby 2.3.8
- Install Bundler by running
gem install bundler
- Install Node.js (required for building the library)
cd
intospec_app
- Install dependencies by running
bundle install
To run Jasmine tests for Unpoly:
cd
intospec_app
- Start the Rails server by running
rails server
- Access
http://localhost:3000/specs
to see the Jasmine test runner
To run RSpec tests for the unpoly-rails
gem:
cd
intospec_app
- Run
rspec
Making a new release
We are currently feeding two release channels:
- npm
- Rubygems (as the
unpoly-rails
gem)
We always release to all channel simultaneously.
To prepare a new version:
- Edit
lib/unpoly/rails/version.rb
and bump the version number. Use semantic versioning. - Add an entry to
CHANGELOG.md
- Commit and push the version bump and
CHANGELOG.md
- Log into Rubygems and npm
Now you can call rake release:all
to publish to Rubygems and npm.
After you have published all release channels, remember to:
- Update unpoly.com so users see the new version, CDN link and CHANGELOG.
- Send a message to the E-mail group with the title "Unpoly X.Y.Z released". You can copy the relevant CHANGELOG part from here.
Credits
- Henning Koch from makandra (@triskweline on Twitter)