Releases: embarklabs/embark
Embark 0.7.0
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
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)
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
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
This release fixes a mining condition where embark was getting into strange loop of starting and stopping mining every second.
Embark 0.2.0
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.