Giter Club home page Giter Club logo

unpoly's Introduction

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 JavaScript code and its (optional) bindings for Ruby on Rails (unpoly-rails gem).

Getting started

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 in spec_app/spec/controllers

Install dependencies for tests:

  • Install Ruby 2.1.2
  • Install Bundler by running gem install bundler
  • cd into spec_app
  • Install dependencies by running bundle install

To run Jasmine tests for Unpoly:

  • cd into spec_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 into spec_app
  • Run rspec

Making a new release

We are currently feeding four release channels:

  • Manual download from GitHub
  • npm
  • Bower (which is based on Git and version tags)
  • Rubygems (as the unpoly-rails gem)

We always release to all channel simultaneously.

To prepare a new version:

  1. Edit lib/unpoly/rails/version.rb and bump the version number. Use semantic versioning.
  2. Add an entry to CHANGELOG.md
  3. Commit and push the version bump and CHANGELOG.md

Now we can release a new version. This requires your to be logged into Rubygems and npm:

  1. From the project root, type rake publish:build. This will output minified JS and CSS files to the dist folder. It also updates the package.json for npm.
  2. Commit and push the generated files. There is a rake task rake publish:commit that helps with this.
  3. From the project root, type rake publish:release. This will publish a new gem version to Rubygems.org.
  4. It will also push a tag for this version, which Bower requires for its own versioning scheme. Finally it publishes to npm.

Always remember to build, commit and push build artifacts before calling rake publish:release so the Git tag points to the correct commit.

If you have done this process a few times and know what you're doing, you can call rake publish:all to run all these steps in sequence.

After you have published all release channels, remember to:

  1. Update unpoly.com so users see the new version, CDN link and CHANGELOG.
  2. 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

unpoly's People

Contributors

triskweline avatar codener avatar foobear avatar dastra-mak avatar pfw avatar jakobscholz avatar kratob avatar adam12 avatar denzelem avatar ktec avatar ro31337 avatar

Watchers

James Cloos avatar

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.