Skip to content

Releases: embarklabs/embark

Embark 0.7.0

23 Jul 12:09
Compare
Choose a tag to compare

New to Embark?


If you are new to Embark, see the Quick Guide or consult the wiki for a more complete documentation.

To Update to 0.7.0

npm update -g embark-framework

you'll need to add embark.yml file to your project and the folder tasks. run embark demo to see the differences.

In this release


This release completely decouples grunt allowing you to use any structure or build environment you wish, including meteor.

Meteor support

to try out meteor with embark:

embark meteor_demo
cd embark_demo

in one command line:

embark blockchain

and in another:
embark deploy to deploy the contracts and generate the bindings file

followed by:
meteor to run the server

note: embark run support might be added in future versions

Deploying to IPFS with Meteor

The build and IPFS commands are also supported. For building your meteor app for distribution simply do

embark build

note: this makes use of the "meteor-build-client" created by Fabian Vogelsteller and packs nicely the client part of a meteor app.

To release to IPFS

embark ipfs

Which will build your meteor app and make it available in IPFS.

Use Embark with any build pipeline, or structure you wish

Embark now comes with a file called embark.yml, this file looks as follows:

type: "manual" # options can be "grunt", "meteor" and "manual"
contracts: ["app/contracts/**/*.sol"] #directory where your contracts live
output: "src/embark.js" #where to output the files with the bindings to the deployed contracts
blockchainConfig: "config/blockchain.yml" #config for the blockchains
contractsConfig: "config/contracts.yml" #config for the contracts

Grunt plugin decoupled

Grunt has been moved to its own plugin, see the Readme. You can use the plugin simply as by adding the something like this to your Gruntfile:

deploy: {
  contracts: ["app/contracts/**/*.sol"],
  dest: "embark_client.js"
}

Embark by default with come with an example boilerplate that uses this plugin.

Support for gulp, broccolijs, etc...

The door is now open for plugins that use embark in pretty much any pipelines and build systems.

Web3.js update

Web3.js lib has be updated to 0.9.3. Note that with the changes in this release you can now easily use any version of web3.js you need.

Production environment

The boilerplate and demos configs now come with a 'production' environment, in preparation for frontier!

workaround for last geth 0.9.39 / 0.9.40

If you have installed the latest geth / frontier. you might see a liability disclaimer which causes issues with embark. This might be fixed in 0.7.1, as a workaround however you can run:

mkdir -p /tmp/embark/keystore

Update guide


See "embark demo" for differences. It's best to just start "embark new".

in package.json for the depedencies

  • update to embark 0.7.0

followed by npm install. You'll also need to add embark.yml to your apps folder, with the line type: "grunt"

Thanks

Special thanks to Marek Kotewicz and Fabian Vogelsteller

Embark 0.5.0

10 Jul 11:04
Compare
Choose a tag to compare

New to Embark?


If you are new to Embark, see the Quick Guide or consult the wiki for a more complete documentation.

To Update to 0.5.0

npm update -g embark-framework

you'll need to add embark.yml file to your project. run embark demo to see the differences.

In this release


Support for Geth 0.9.38 and updated to Web3 0.8.1

By popular request here is the update to support the latest geth! This means however that full support for meteor was pushed back to 0.6.0.

Contract Instances

You can now deploy many instances of the same contract. e.g

# config/contracts.yml
  development:
    Currency:
      args:
        - 100
    Usd:
       instanceOf: Currency
       args:
         - "initial string"
    MyCoin:
      instanceOf: Currency
      args:
        - $SimpleStorage
  ...

Static Contracts

Contracts addresses can be defined, If an address is defined the contract wouldn't be deployed but its defined address will be used instead.

  development:
    UserStorage:
      address: 0x123456
    UserManagement:
       args:
         - $UserStorage
  ...

Update guide


See "embark demo" for differences. It's best to just start "embark new".

in package.json for the depedencies

  • update to embark 0.5.0

followed by npm install. You'll also need to add embark.yml to your apps folder, with the line type: "grunt"

Thanks

Special thanks to Marek Kotewicz, Viktor Tron, linagee, Konstantin Kudryavtsev, Nikolai Mushegian for contributions to this release.

Embark 0.4.0 (0.4.2)

22 Jun 12:17
Compare
Choose a tag to compare

New to Embark?


If you are new to Embark, see the Quick Guide or consult the wiki for a more complete documentation.

To Update to 0.4.0


npm update -g embark-framework

And install pyethereum and ethertdd.py to use the new spec functionality.

Note: 0.4.2 has been released and is compatible with geth 0.9.33

In this release


Test Driven Development

You can run specs with embark spec, it will run any files ending *_spec.js under spec/.

Embark includes a testing lib to fastly run & test your contracts in a EVM.

# spec/contracts/simple_storage_spec.js
EmbarkSpec = require('embark-framework').Tests;

describe("SimpleStorage", function() {
  beforeAll(function() {
    // equivalent to initializing SimpleStorage with param 150
    SimpleStorage = EmbarkSpec.request("SimpleStorage", [150]);
  });

  it("should set constructor value", function() {
    expect(SimpleStorage.storedData()).toEqual('150');
  });

  it("set storage value", function() {
    SimpleStorage.set(100);
    expect(SimpleStorage.get()).toEqual('100');
  });

})

Embark uses Jasmine by default, but you can use any testing framework you want.

Contracts configuration

Embark now allows you to:

  • configure gas costs per contract and per environment
  • configure arguments to initialize a contract
  • specify other contracts as arguments to contracts

e.g specify gas costs and arguments:

# config/contracts.yml
  development:
    SimpleStorage:
      gas_limit: 500000
      gas_price: 10000000000000
      args:
        - 100
  ...

e.g specify a contract as an argument to another contract. Embark will automatically use the up to date contract address.

# config/contracts.yml
  development:
    SimpleStorage:
      args:
        - 100
        - $MyStorage
    MyStorage:
       args:
         - "initial string"
    MyMainContract:
      args:
        - $SimpleStorage
  ...

Update guide


See "embark demo" for differences. It's best to just start "embark new", in future versions there will be an "embark update" option. However, at the moment if you need to update an existing app without starting over, then the following should work:

in package.json for the depedencies

  • update to embark 0.4.0
  • update to embark 0.4.2

followed by npm install. You'll also need to add contracts.yml to your config folder.

Future updates


There is still a long road ahead! Upcoming updates will focus on integration with Meteor, further improving the deployment, and addressing technical debt. Please keep the feedback coming, it's appreciated! :)

Thanks

Special thanks to Ryan Casey, Viktor Tron and Christian Reitwiessne

Embark 0.3.0

10 Jun 14:15
Compare
Choose a tag to compare

New to Embark?


If you are new to Embark, see the documentation for a full guide

To Update to 0.3.0


npm update -g embark-framework

In this release


IPFS support
It is now possible to easily deploy a dapp to IPFS. You'll need to install IPFS first and run ipfs daemon. Afterwards simply run embark ipfs <environment> to deploy it, for e.g embark ipfs staging
Embark will build & deploy the app to IPFS and tell you which URLs the dapp is available.

config updates
It's now possible to specify the gas price on config/blockchain.yml with the gas_price field. By default this field is 10 szabo. Future versions should support configuring gas costs per contract.

Update guide


See "embark demo" for differences. It's best to just start "embark new", in future versions there will be an "embark update" option. However, at the moment if you need to update an existing app without starting over, then the following should work:

in package.json for the depedencies

  • update to embark 0.3.0

followed by npm install

0.2.1 - fix to mining issue

05 Jun 13:00
Compare
Choose a tag to compare

This release fixes a mining condition where embark was getting into strange loop of starting and stopping mining every second.

Embark 0.2.0

04 Jun 12:17
Compare
Choose a tag to compare

New to Embark?


If you are new to Embark, see the documentation for a full guide

To Update to 0.2.0


npm update -g embark-framework

In this release


Support for bigger contracts
Previously no gas limit was set which was causing issues with bigger contracts. this can now be configured at config/blockchain.yml with the gas_limit option. by default this value is 100000.

web3.js 0.5.0
The web3 lib version has been updated to 0.5.0, the latest version.

config updates
You can choose the order in which to include files (for e.g to include a lib before another), in 0.1.x there were sometimes issues doing this which have been fixed in this version.

Update guide


See "embark demo" for differences. It's best to just start "embark new", in future versions there will be an "embark update" option. However, at the moment if you need to update an existing app without starting over, then the following should work:

in package.json for the depedencies

  • update to embark 0.2.0
  • add "hashmerge": "^1.0.2"

in Gruntfile.coffee

  • replace grunt.config.merge(your config) with grunt.initConfig(@initEmbarkConfig(your config))

followed by npm install

Thanks


Special thanks to Marek Kotewicz for contributions to this release.