Git Product home page Git Product logo

Comments (10)

sersut avatar sersut commented on June 23, 2024

I think in the app style we should have the Berksfile and .kitchen.yml at the root of the app. Because it's likely that one will build multiple cookbooks inside the cookbooks directory.

We should probably move the Berksfile to the root and fix the things that are blocking initial kitchen run.

from chef-dk.

David-Gil avatar David-Gil commented on June 23, 2024

I moved the Berksfile and the Berksfile.lock to the root of the app, but it keeps giving errors (as expected, actually). I give you the info I got. Anything I can further do?

-----> Starting Kitchen (v1.2.2.dev)
-----> Converging <default-ubuntu-1204>...
       Preparing files for transfer
       Resolving cookbook dependencies with Berkshelf 3.1.1...
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: Failed to complete #converge action: [Berkshelf::BerksfileReadError]
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration

kitchen.log

I, [2014-05-15T10:00:13.814651 #13926]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-15T10:00:14.037886 #13926]  INFO -- Kitchen: -----> Creating <default-ubuntu-1204>...
I, [2014-05-15T10:01:00.536566 #13926]  INFO -- Kitchen: -----> Kitchen is finished. (0m46.72s)
I, [2014-05-15T10:04:13.988004 #15158]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-15T10:04:14.204775 #15158]  INFO -- Kitchen: -----> Converging <default-ubuntu-1204>...
E, [2014-05-15T10:04:59.642633 #15158] ERROR -- Kitchen: Converge failed on instance <default-ubuntu-1204>.
I, [2014-05-15T10:10:52.515696 #15219]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-15T10:10:52.856539 #15219]  INFO -- Kitchen: -----> Converging <default-ubuntu-1204>...
E, [2014-05-15T10:10:55.930645 #15219] ERROR -- Kitchen: Converge failed on instance <default-ubuntu-1204>.
I, [2014-05-15T10:14:53.268288 #15411]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-15T10:14:53.487806 #15411]  INFO -- Kitchen: -----> Converging <default-ubuntu-1204>...
E, [2014-05-15T10:14:56.655521 #15411] ERROR -- Kitchen: Converge failed on instance <default-ubuntu-1204>.
I, [2014-05-15T11:42:07.543804 #20304]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-15T11:42:07.781307 #20304]  INFO -- Kitchen: -----> Converging <default-ubuntu-1204>...
E, [2014-05-15T11:42:10.937401 #20304] ERROR -- Kitchen: Converge failed on instance <default-ubuntu-1204>.
I, [2014-05-15T11:51:00.305618 #20376]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-15T11:51:00.524432 #20376]  INFO -- Kitchen: -----> Destroying <default-ubuntu-1204>...
I, [2014-05-15T11:51:04.944415 #20376]  INFO -- Kitchen: -----> Kitchen is finished. (0m4.64s)
I, [2014-05-16T09:00:38.095996 #25381]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-16T09:00:38.610830 #25381]  INFO -- Kitchen: -----> Creating <default-ubuntu-1204>...
I, [2014-05-16T09:01:36.855047 #25381]  INFO -- Kitchen: -----> Kitchen is finished. (0m58.74s)
I, [2014-05-16T09:01:55.323928 #26581]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-16T09:01:55.764745 #26581]  INFO -- Kitchen: -----> Converging <default-ubuntu-1204>...
E, [2014-05-16T09:01:55.864501 #26581] ERROR -- Kitchen: ------Exception-------
E, [2014-05-16T09:01:55.864539 #26581] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-16T09:01:55.864560 #26581] ERROR -- Kitchen: Message: Failed to complete #converge action: [Berkshelf::BerksfileReadError]
E, [2014-05-16T09:01:55.864581 #26581] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-16T09:01:55.864604 #26581] ERROR -- Kitchen: Class: Berkshelf::BerksfileReadError
E, [2014-05-16T09:01:55.864623 #26581] ERROR -- Kitchen: Message: Berkshelf::BerksfileReadError
E, [2014-05-16T09:01:55.864648 #26581] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-16T09:01:55.864667 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-3.1.0/lib/ridley/mixin/from_file.rb:63:in `ensure_presence!'
E, [2014-05-16T09:01:55.864686 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-3.1.0/lib/ridley/mixin/from_file.rb:28:in `from_file'
E, [2014-05-16T09:01:55.864706 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-3.1.0/lib/ridley/mixin/from_file.rb:5:in `from_file'
E, [2014-05-16T09:01:55.864725 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/berksfile.rb:165:in `metadata'
E, [2014-05-16T09:01:55.864749 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:26:in `block (3 levels) in clean_room'
E, [2014-05-16T09:01:55.864768 #26581] ERROR -- Kitchen: /home/david/devel/ck/dtcat-joomla/Berksfile:3:in `block in dsl_eval_file'
E, [2014-05-16T09:01:55.864787 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:54:in `eval'
E, [2014-05-16T09:01:55.864811 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:54:in `block in dsl_eval_file'
E, [2014-05-16T09:01:55.864837 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:44:in `instance_eval'
E, [2014-05-16T09:01:55.864858 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:44:in `dsl_eval'
E, [2014-05-16T09:01:55.864877 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:54:in `dsl_eval_file'
E, [2014-05-16T09:01:55.864896 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/berksfile.rb:23:in `from_file'
E, [2014-05-16T09:01:55.864920 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef/berkshelf.rb:55:in `block in resolve'
E, [2014-05-16T09:01:55.864939 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/shell/basic.rb:20:in `mute'
E, [2014-05-16T09:01:55.864958 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef/berkshelf.rb:51:in `resolve'
E, [2014-05-16T09:01:55.864977 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:394:in `block in resolve_with_berkshelf'
E, [2014-05-16T09:01:55.865001 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:393:in `synchronize'
E, [2014-05-16T09:01:55.865020 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:393:in `resolve_with_berkshelf'
E, [2014-05-16T09:01:55.865039 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:259:in `prepare_cookbooks'
E, [2014-05-16T09:01:55.865058 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:120:in `create_sandbox'
E, [2014-05-16T09:01:55.865082 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_solo.rb:33:in `create_sandbox'
E, [2014-05-16T09:01:55.865109 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/driver/ssh_base.rb:40:in `converge'
E, [2014-05-16T09:01:55.865130 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:75:in `converge'
E, [2014-05-16T09:01:55.865149 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:280:in `public_send'
E, [2014-05-16T09:01:55.865168 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:280:in `block in perform_action'
E, [2014-05-16T09:01:55.865202 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:315:in `call'
E, [2014-05-16T09:01:55.865222 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:315:in `synchronize_or_call'
E, [2014-05-16T09:01:55.865241 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:290:in `block in action'
E, [2014-05-16T09:01:55.865260 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-16T09:01:55.865278 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:289:in `action'
E, [2014-05-16T09:01:55.865297 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:280:in `perform_action'
E, [2014-05-16T09:01:55.865316 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:263:in `converge_action'
E, [2014-05-16T09:01:55.865334 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:253:in `block in transition_to'
E, [2014-05-16T09:01:55.865353 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:252:in `each'
E, [2014-05-16T09:01:55.865387 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:252:in `transition_to'
E, [2014-05-16T09:01:55.865407 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-16T09:01:55.865426 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-16T09:01:55.865445 #26581] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-16T09:01:55.865463 #26581] ERROR -- Kitchen: ----------------------
I, [2014-05-16T09:08:39.359828 #26654]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-16T09:08:39.805121 #26654]  INFO -- Kitchen: -----> Destroying <default-ubuntu-1204>...
I, [2014-05-16T09:08:43.391807 #26654]  INFO -- Kitchen: -----> Kitchen is finished. (0m4.03s)
I, [2014-05-16T09:14:01.045438 #27074]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-16T09:14:01.466422 #27074]  INFO -- Kitchen: -----> Creating <default-ubuntu-1204>...
I, [2014-05-16T09:14:52.345214 #27074]  INFO -- Kitchen: -----> Kitchen is finished. (0m51.30s)
I, [2014-05-16T09:15:01.124923 #28241]  INFO -- Kitchen: -----> Starting Kitchen (v1.2.2.dev)
I, [2014-05-16T09:15:01.861242 #28241]  INFO -- Kitchen: -----> Converging <default-ubuntu-1204>...
E, [2014-05-16T09:15:01.964698 #28241] ERROR -- Kitchen: ------Exception-------
E, [2014-05-16T09:15:01.964751 #28241] ERROR -- Kitchen: Class: Kitchen::ActionFailed
E, [2014-05-16T09:15:01.964781 #28241] ERROR -- Kitchen: Message: Failed to complete #converge action: [Berkshelf::BerksfileReadError]
E, [2014-05-16T09:15:01.964809 #28241] ERROR -- Kitchen: ---Nested Exception---
E, [2014-05-16T09:15:01.964835 #28241] ERROR -- Kitchen: Class: Berkshelf::BerksfileReadError
E, [2014-05-16T09:15:01.964881 #28241] ERROR -- Kitchen: Message: Berkshelf::BerksfileReadError
E, [2014-05-16T09:15:01.964907 #28241] ERROR -- Kitchen: ------Backtrace-------
E, [2014-05-16T09:15:01.964933 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-3.1.0/lib/ridley/mixin/from_file.rb:63:in `ensure_presence!'
E, [2014-05-16T09:15:01.964960 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-3.1.0/lib/ridley/mixin/from_file.rb:28:in `from_file'
E, [2014-05-16T09:15:01.964986 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/ridley-3.1.0/lib/ridley/mixin/from_file.rb:5:in `from_file'
E, [2014-05-16T09:15:01.965018 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/berksfile.rb:165:in `metadata'
E, [2014-05-16T09:15:01.965045 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:26:in `block (3 levels) in clean_room'
E, [2014-05-16T09:15:01.965072 #28241] ERROR -- Kitchen: /home/david/devel/ck/dtcat-joomla/Berksfile:3:in `block in dsl_eval_file'
E, [2014-05-16T09:15:01.965129 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:54:in `eval'
E, [2014-05-16T09:15:01.965156 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:54:in `block in dsl_eval_file'
E, [2014-05-16T09:15:01.965182 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:44:in `instance_eval'
E, [2014-05-16T09:15:01.965208 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:44:in `dsl_eval'
E, [2014-05-16T09:15:01.965233 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/mixin/dsl_eval.rb:54:in `dsl_eval_file'
E, [2014-05-16T09:15:01.965272 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.1.1/lib/berkshelf/berksfile.rb:23:in `from_file'
E, [2014-05-16T09:15:01.965309 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef/berkshelf.rb:55:in `block in resolve'
E, [2014-05-16T09:15:01.965337 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/shell/basic.rb:20:in `mute'
E, [2014-05-16T09:15:01.965362 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef/berkshelf.rb:51:in `resolve'
E, [2014-05-16T09:15:01.965387 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:394:in `block in resolve_with_berkshelf'
E, [2014-05-16T09:15:01.965412 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:393:in `synchronize'
E, [2014-05-16T09:15:01.965437 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:393:in `resolve_with_berkshelf'
E, [2014-05-16T09:15:01.965475 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:259:in `prepare_cookbooks'
E, [2014-05-16T09:15:01.965501 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_base.rb:120:in `create_sandbox'
E, [2014-05-16T09:15:01.965526 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/provisioner/chef_solo.rb:33:in `create_sandbox'
E, [2014-05-16T09:15:01.965550 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/driver/ssh_base.rb:40:in `converge'
E, [2014-05-16T09:15:01.965576 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/lib/kitchen/driver/vagrant.rb:75:in `converge'
E, [2014-05-16T09:15:01.965601 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:280:in `public_send'
E, [2014-05-16T09:15:01.965625 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:280:in `block in perform_action'
E, [2014-05-16T09:15:01.965650 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:315:in `call'
E, [2014-05-16T09:15:01.965675 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:315:in `synchronize_or_call'
E, [2014-05-16T09:15:01.965700 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:290:in `block in action'
E, [2014-05-16T09:15:01.965744 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/lib/ruby/2.1.0/benchmark.rb:279:in `measure'
E, [2014-05-16T09:15:01.965771 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:289:in `action'
E, [2014-05-16T09:15:01.965796 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:280:in `perform_action'
E, [2014-05-16T09:15:01.965821 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:263:in `converge_action'
E, [2014-05-16T09:15:01.965846 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:253:in `block in transition_to'
E, [2014-05-16T09:15:01.965870 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:252:in `each'
E, [2014-05-16T09:15:01.965895 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:252:in `transition_to'
E, [2014-05-16T09:15:01.965919 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/instance.rb:119:in `converge'
E, [2014-05-16T09:15:01.965944 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/command.rb:109:in `public_send'
E, [2014-05-16T09:15:01.965969 #28241] ERROR -- Kitchen: /opt/chefdk/embedded/apps/test-kitchen/lib/kitchen/command.rb:109:in `block (2 levels) in run_action'
E, [2014-05-16T09:15:01.965994 #28241] ERROR -- Kitchen: ----------------------

#kitchen diagnose --all

---
timestamp: 2014-05-16 07:21:56.800418247 Z
kitchen_version: 1.2.2.dev
loader:
  process_erb: true
  process_local: true
  process_global: true
  global_config:
    filename: "/home/david/.kitchen/config.yml"
    raw_data:
      provisioner:
        solo_rb:
          http_proxy: http://proxy.foo.com:3333
          https_proxy: http://proxy.foo.com:3333
          no_proxy: localhost,127.0.0.1
        client_rb:
          http_proxy: http://proxy.foo.com:3333
          https_proxy: http://proxy.foo.com:3333
          no_proxy: localhost,127.0.0.1
  project_config:
    filename: "/home/david/devel/ck/dtcat-joomla/.kitchen.yml"
    raw_data:
      driver:
        name: vagrant
      driver_config:
        http_proxy: http://proxy.foo.com:3333
        https_proxy: http://proxy.foo.com:3333
        network:
        - - private_network
          - ip: 192.168.0.2
      provisioner:
        name: chef_solo
      platforms:
      - name: ubuntu-12.04
      suites:
      - name: default
        run_list:
        - recipe[apt]
        - recipe[dtcat-joomla::default]
  local_config: 
  combined_config:
    filename: 
    raw_data:
      driver:
        name: vagrant
      driver_config:
        http_proxy: http://proxy.foo.com:3333
        https_proxy: http://proxy.foo.com:3333
        network:
        - - private_network
          - ip: 192.168.0.2
      provisioner:
        name: chef_solo
        solo_rb:
          http_proxy: http://proxy.foo.com:3333
          https_proxy: http://proxy.foo.com:3333
          no_proxy: localhost,127.0.0.1
        client_rb:
          http_proxy: http://proxy.foo.com:3333
          https_proxy: http://proxy.foo.com:3333
          no_proxy: localhost,127.0.0.1
      platforms:
      - name: ubuntu-12.04
      suites:
      - name: default
        run_list:
        - recipe[apt]
        - recipe[dtcat-joomla::default]
instances:
  default-ubuntu-1204:
    state_file:
      hostname: 127.0.0.1
      last_action: create
      port: '2201'
      ssh_key: "/home/david/.vagrant.d/insecure_private_key"
      username: vagrant
    driver:
      box: opscode-ubuntu-12.04
      box_url: https://opscode-vm-bento.s3.amazonaws.com/vagrant/virtualbox/opscode_ubuntu-12.04_chef-provisionerless.box
      customize: {}
      http_proxy: http://proxy.foo.com:3333
      https_proxy: http://proxy.foo.com:3333
      kitchen_root: "/home/david/devel/ck/dtcat-joomla"
      log_level: :info
      name: vagrant
      network:
      - - private_network
        - ip: 192.168.0.2
      port: 22
      pre_create_command: 
      provider: virtualbox
      sudo: true
      synced_folders: []
      test_base_path: "/home/david/devel/ck/dtcat-joomla/test/integration"
      vagrantfile_erb: "/opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/kitchen-vagrant-0.15.0/templates/Vagrantfile.erb"
      vm_hostname: default-ubuntu-1204.vagrantup.com
    provisioner:
      attributes: {}
      chef_omnibus_url: https://www.getchef.com/chef/install.sh
      client_rb:
        http_proxy: http://proxy.foo.com:3333
        https_proxy: http://proxy.foo.com:3333
        no_proxy: localhost,127.0.0.1
      clients_path: 
      cookbook_files_glob: README.*,metadata.{json,rb},attributes/**/*,definitions/**/*,files/**/*,libraries/**/*,providers/**/*,recipes/**/*,resources/**/*,templates/**/*
      data_bags_path: 
      data_path: 
      encrypted_data_bag_secret_key_path: 
      environments_path: 
      kitchen_root: "/home/david/devel/ck/dtcat-joomla"
      log_level: :info
      name: chef_solo
      nodes_path: 
      require_chef_omnibus: true
      roles_path: 
      root_path: "/tmp/kitchen"
      run_list:
      - recipe[apt]
      - recipe[dtcat-joomla::default]
      solo_rb:
        http_proxy: http://proxy.foo.com:3333
        https_proxy: http://proxy.foo.com:3333
        no_proxy: localhost,127.0.0.1
      sudo: true
      test_base_path: "/home/david/devel/ck/dtcat-joomla/test/integration"
    busser:
      busser_bin: "/tmp/busser/bin/busser"
      kitchen_root: "/home/david/devel/ck/dtcat-joomla"
      root_path: "/tmp/busser"
      ruby_bindir: "/opt/chef/embedded/bin"
      sudo: true
      suite_name: default
      test_base_path: "/home/david/devel/ck/dtcat-joomla/test/integration"
      version: busser

from chef-dk.

sersut avatar sersut commented on June 23, 2024

Thanks @David-Gil for follow up. I think the issue is understood. My thoughts were about what should happen ideally within the code.

The workaround for now would be to move the .kitchen.yml within the cookbook directory.

from chef-dk.

Jimflip avatar Jimflip commented on June 23, 2024

Just wasted my time with the same issue.
Have to say its pretty bad form for Chef generator to create invalid configuration, doesn't give one much confidence!

from chef-dk.

dev-head avatar dev-head commented on June 23, 2024

+1 just spent the past two hours looking for something that would explain the issue, finally arrived here. please address || document behavior.

from chef-dk.

ukeller avatar ukeller commented on June 23, 2024

placing .kitchen.yml in cookbooks worked for me only if I also add a Berksfile in cookbooks referencing the paths of my cookbooks e.g.:

cat cookbooks/Berksfile
source 'https://supermarket.chef.io'
cookbook "bla", path: "./bla"
cookbook "blo", path: "./blo"

from chef-dk.

charlesjohnson avatar charlesjohnson commented on June 23, 2024

Tried to reproduce in ChefDK 0.15.15, this now appears to work as intended:
Chef Generate App:

chef generate app foobar
Installing Cookbook Gems:
Compiling Cookbooks...
Recipe: code_generator::app
  * directory[/Users/charlesjohnson/Development/foobar] action create (up to date)
  * template[/Users/charlesjohnson/Development/foobar/.kitchen.yml] action create
    - update content in file /Users/charlesjohnson/Development/foobar/.kitchen.yml from d9a928 to 3f851d
    (diff output suppressed by config)
  * directory[/Users/charlesjohnson/Development/foobar/test/integration/default/serverspec] action create
    - create new directory /Users/charlesjohnson/Development/foobar/test/integration/default/serverspec
  * directory[/Users/charlesjohnson/Development/foobar/test/integration/helpers/serverspec] action create (up to date)
  * cookbook_file[/Users/charlesjohnson/Development/foobar/test/integration/helpers/serverspec/spec_helper.rb] action create_if_missing (up to date)
  * template[/Users/charlesjohnson/Development/foobar/test/integration/default/serverspec/default_spec.rb] action create_if_missing
    - create new file /Users/charlesjohnson/Development/foobar/test/integration/default/serverspec/default_spec.rb
    - update content in file /Users/charlesjohnson/Development/foobar/test/integration/default/serverspec/default_spec.rb from none to 8e6873
    (diff output suppressed by config)
  * template[/Users/charlesjohnson/Development/foobar/README.md] action create (up to date)
  * directory[/Users/charlesjohnson/Development/foobar/cookbooks] action create
    - create new directory /Users/charlesjohnson/Development/foobar/cookbooks
  * directory[/Users/charlesjohnson/Development/foobar/cookbooks/foobar] action create
    - create new directory /Users/charlesjohnson/Development/foobar/cookbooks/foobar
  * template[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/metadata.rb] action create
    - create new file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/metadata.rb
    - update content in file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/metadata.rb from none to 1a86c5
    (diff output suppressed by config)
  * cookbook_file[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/chefignore] action create
    - create new file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/chefignore
    - update content in file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/chefignore from none to e394e1
    (diff output suppressed by config)
  * cookbook_file[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/Berksfile] action create
    - create new file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/Berksfile
    - update content in file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/Berksfile from none to 5ec92e
    (diff output suppressed by config)
  * directory[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/recipes] action create
    - create new directory /Users/charlesjohnson/Development/foobar/cookbooks/foobar/recipes
  * template[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/recipes/default.rb] action create
    - create new file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/recipes/default.rb
    - update content in file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/recipes/default.rb from none to 66e33f
    (diff output suppressed by config)
  * directory[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/unit/recipes] action create
    - create new directory /Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/unit/recipes
  * cookbook_file[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/spec_helper.rb] action create_if_missing
    - create new file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/spec_helper.rb
    - update content in file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/spec_helper.rb from none to 945e09
    (diff output suppressed by config)
  * template[/Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/unit/recipes/default_spec.rb] action create_if_missing
    - create new file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/unit/recipes/default_spec.rb
    - update content in file /Users/charlesjohnson/Development/foobar/cookbooks/foobar/spec/unit/recipes/default_spec.rb from none to 719c26
    (diff output suppressed by config)
  * execute[initialize-git] action run
    - execute git init .
  * cookbook_file[/Users/charlesjohnson/Development/foobar/.gitignore] action create (up to date)

Files in generated app:

➜  foobar git:(master) ✗ ls
Berksfile      README.md      cookbooks      recipes        test
Berksfile.lock chefignore     metadata.rb    spec

Running Kitchen test:

➜  foobar git:(master) ✗ kitchen test default-centos-72
-----> Starting Kitchen (v1.10.0)
-----> Cleaning up any prior instances of <default-centos-72>
-----> Destroying <default-centos-72>...
       Finished destroying <default-centos-72> (0m0.00s).
-----> Testing <default-centos-72>
-----> Creating <default-centos-72>...
       Bringing machine 'default' up with 'virtualbox' provider...
       ==> default: Importing base box 'bento/centos-7.2'...
==> default: Matching MAC address for NAT networking...
       ==> default: Checking if box 'bento/centos-7.2' is up to date...
       ==> default: Setting the name of the VM: kitchen-foobar-default-centos-72_default_1466801463581_16691
       ==> default: Clearing any previously set network interfaces...
       ==> default: Preparing network interfaces based on configuration...
           default: Adapter 1: nat
       ==> default: Forwarding ports...
           default: 22 (guest) => 2222 (host) (adapter 1)
       ==> default: Booting VM...
       ==> default: Waiting for machine to boot. This may take a few minutes...
           default: SSH address: 127.0.0.1:2222
           default: SSH username: vagrant
           default: SSH auth method: private key
           default: Warning: Remote connection disconnect. Retrying...
           default:
           default: Vagrant insecure key detected. Vagrant will automatically replace
           default: this with a newly generated keypair for better security.
           default:
           default: Inserting generated public key within guest...
           default: Removing insecure key from the guest if it's present...
           default: Key inserted! Disconnecting and reconnecting using new SSH key...
       ==> default: Machine booted and ready!
       ==> default: Checking for guest additions in VM...
       ==> default: Setting hostname...
       ==> default: Machine not provisioned because `--no-provision` is specified.
       [SSH] Established
       Vagrant instance <default-centos-72> created.
       Finished creating <default-centos-72> (0m35.04s).
-----> Converging <default-centos-72>...
       Preparing files for transfer
       Preparing dna.json
       Resolving cookbook dependencies with Berkshelf 4.3.5...
       Removing non-cookbook files before transfer
       Preparing validation.pem
       Preparing client.rb
-----> Installing Chef Omnibus (install only if missing)
       Downloading https://omnitruck.chef.io/install.sh to file /tmp/install.sh
       Trying wget...
       Download complete.
       el 7 x86_64
       Getting information for chef stable  for el...
       downloading https://omnitruck.chef.io/stable/chef/metadata?v=&p=el&pv=7&m=x86_64
         to file /tmp/install.sh.6215/metadata.txt
       trying wget...
       sha1 4b0ecd14127fe6d0e5423f78a733ce43db1814c7
       sha256   a5d5db51eb57cdb0045953f4007f10bf50199c40c0d89c41272cf171d56b6c53
       url  https://packages.chef.io/stable/el/7/chef-12.11.18-1.el7.x86_64.rpm
       version  12.11.18
       downloaded metadata file looks valid...
       downloading https://packages.chef.io/stable/el/7/chef-12.11.18-1.el7.x86_64.rpm
         to file /tmp/install.sh.6215/chef-12.11.18-1.el7.x86_64.rpm
       trying wget...
       Comparing checksum with sha256sum...

       WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING

       You are installing an omnibus package without a version pin.  If you are installing
       on production servers via an automated process this is DANGEROUS and you will
       be upgraded without warning on new releases, even to new major releases.
       Letting the version float is only appropriate in desktop, test, development or
       CI/CD environments.

       WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING

       Installing chef
       installing with rpm...
       warning: /tmp/install.sh.6215/chef-12.11.18-1.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 83ef826a: NOKEY
       Preparing...                          ################################# [100%]
       Updating / installing...
          1:chef-12.11.18-1.el7              ################################# [100%]
       Thank you for installing Chef!
       Transferring files to <default-centos-72>
       Starting Chef Client, version 12.11.18
       Creating a new client identity for default-centos-72 using the validator key.
       resolving cookbooks for run list: ["foobar::default"]
       Synchronizing Cookbooks:
         - foobar (0.1.0)
       Installing Cookbook Gems:
       Compiling Cookbooks...
       Converging 0 resources

       Running handlers:
       Running handlers complete
       Chef Client finished, 0/0 resources updated in 01 seconds
       Finished converging <default-centos-72> (0m32.41s).
-----> Setting up <default-centos-72>...
       Finished setting up <default-centos-72> (0m0.00s).
-----> Verifying <default-centos-72>...
       Preparing files for transfer
-----> Installing Busser (busser)
Fetching: thor-0.19.0.gem (100%)
       Successfully installed thor-0.19.0
Fetching: busser-0.7.1.gem (100%)
       Successfully installed busser-0.7.1
       2 gems installed
       Installing Busser plugins: busser-serverspec
       Plugin serverspec installed (version 0.5.9)
-----> Running postinstall for serverspec plugin
       Suite path directory /tmp/verifier/suites does not exist, skipping.
       Transferring files to <default-centos-72>
-----> Running serverspec test suite
-----> Installing Serverspec..
Fetching: rspec-support-3.4.1.gem (100%)
Fetching: rspec-core-3.4.4.gem (100%)
Fetching: diff-lcs-1.2.5.gem (100%)
Fetching: rspec-expectations-3.4.0.gem (100%)
Fetching: rspec-mocks-3.4.1.gem (100%)
Fetching: rspec-3.4.0.gem (100%)
Fetching: rspec-its-1.2.0.gem (100%)
Fetching: multi_json-1.12.1.gem (100%)
Fetching: net-ssh-3.2.0.gem (100%)
Fetching: net-scp-1.2.1.gem (100%)
Fetching: net-telnet-0.1.1.gem (100%)
Fetching: sfl-2.2.gem (100%)
Fetching: specinfra-2.59.3.gem (100%)
Fetching: serverspec-2.36.0.gem (100%)
-----> serverspec installed (version 2.36.0)
       /opt/chef/embedded/bin/ruby -I/tmp/verifier/suites/serverspec -I/tmp/verifier/gems/gems/rspec-support-3.4.1/lib:/tmp/verifier/gems/gems/rspec-core-3.4.4/lib /opt/chef/embedded/bin/rspec --pattern /tmp/verifier/suites/serverspec/\*\*/\*_spec.rb --color --format documentation --default-path /tmp/verifier/suites/serverspec

       foobar::default
         does something (PENDING: Replace this with meaningful tests)

       Pending: (Failures listed here are expected and do not affect your suite's status)

         1) foobar::default does something
            # Replace this with meaningful tests
            # /tmp/verifier/suites/serverspec/default_spec.rb:6


       Finished in 0.00061 seconds (files took 0.31588 seconds to load)
       1 example, 0 failures, 1 pending

       Finished verifying <default-centos-72> (0m10.24s).
-----> Destroying <default-centos-72>...
       ==> default: Forcing shutdown of VM...
       ==> default: Destroying VM and associated drives...
       Vagrant instance <default-centos-72> destroyed.
       Finished destroying <default-centos-72> (0m3.74s).
       Finished testing <default-centos-72> (1m21.44s).
-----> Kitchen is finished. (1m22.02s)

from chef-dk.

moleculezz avatar moleculezz commented on June 23, 2024

@charlesjohnson Looking at your output and comparing to your ls. It is not the same. Did you move some files around?

~/Development chef generate app mediaapp
Installing Cookbook Gems:
Compiling Cookbooks...
Recipe: code_generator::app
  * directory[/Users/gdarends/Development/mediaapp] action create
    - create new directory /Users/gdarends/Development/mediaapp
  * template[/Users/gdarends/Development/mediaapp/.kitchen.yml] action create
    - create new file /Users/gdarends/Development/mediaapp/.kitchen.yml
    - update content in file /Users/gdarends/Development/mediaapp/.kitchen.yml from none to f5e488
    (diff output suppressed by config)
  * directory[/Users/gdarends/Development/mediaapp/test/integration/default/serverspec] action create
    - create new directory /Users/gdarends/Development/mediaapp/test/integration/default/serverspec
  * directory[/Users/gdarends/Development/mediaapp/test/integration/helpers/serverspec] action create
    - create new directory /Users/gdarends/Development/mediaapp/test/integration/helpers/serverspec
  * cookbook_file[/Users/gdarends/Development/mediaapp/test/integration/helpers/serverspec/spec_helper.rb] action create_if_missing
    - create new file /Users/gdarends/Development/mediaapp/test/integration/helpers/serverspec/spec_helper.rb
    - update content in file /Users/gdarends/Development/mediaapp/test/integration/helpers/serverspec/spec_helper.rb from none to a226b8
    (diff output suppressed by config)
  * template[/Users/gdarends/Development/mediaapp/test/integration/default/serverspec/default_spec.rb] action create_if_missing
    - create new file /Users/gdarends/Development/mediaapp/test/integration/default/serverspec/default_spec.rb
    - update content in file /Users/gdarends/Development/mediaapp/test/integration/default/serverspec/default_spec.rb from none to c10649
    (diff output suppressed by config)
  * template[/Users/gdarends/Development/mediaapp/README.md] action create
    - create new file /Users/gdarends/Development/mediaapp/README.md
    - update content in file /Users/gdarends/Development/mediaapp/README.md from none to 4e7808
    (diff output suppressed by config)
  * directory[/Users/gdarends/Development/mediaapp/cookbooks] action create
    - create new directory /Users/gdarends/Development/mediaapp/cookbooks
  * directory[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp] action create
    - create new directory /Users/gdarends/Development/mediaapp/cookbooks/mediaapp
  * template[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/metadata.rb] action create
    - create new file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/metadata.rb
    - update content in file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/metadata.rb from none to 774f5e
    (diff output suppressed by config)
  * cookbook_file[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/chefignore] action create
    - create new file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/chefignore
    - update content in file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/chefignore from none to e394e1
    (diff output suppressed by config)
  * cookbook_file[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/Berksfile] action create
    - create new file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/Berksfile
    - update content in file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/Berksfile from none to 5ec92e
    (diff output suppressed by config)
  * directory[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/recipes] action create
    - create new directory /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/recipes
  * template[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/recipes/default.rb] action create
    - create new file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/recipes/default.rb
    - update content in file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/recipes/default.rb from none to 035ab6
    (diff output suppressed by config)
  * directory[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/unit/recipes] action create
    - create new directory /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/unit/recipes
  * cookbook_file[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/spec_helper.rb] action create_if_missing
    - create new file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/spec_helper.rb
    - update content in file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/spec_helper.rb from none to 945e09
    (diff output suppressed by config)
  * template[/Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/unit/recipes/default_spec.rb] action create_if_missing
    - create new file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/unit/recipes/default_spec.rb
    - update content in file /Users/gdarends/Development/mediaapp/cookbooks/mediaapp/spec/unit/recipes/default_spec.rb from none to 2e0f1a
    (diff output suppressed by config)
  * execute[initialize-git] action run
    - execute git init .
  * cookbook_file[/Users/gdarends/Development/mediaapp/.gitignore] action create
    - create new file /Users/gdarends/Development/mediaapp/.gitignore
    - update content in file /Users/gdarends/Development/mediaapp/.gitignore from none to dd37b2
    (diff output suppressed by config)
 ✝ ~/Development  cd mediaapp
 ✝ ~/Development/mediaapp  master±  ls -la
total 24
drwxr-xr-x   8 gdarends  staff   272 Jul  6 08:20 .
drwxr-xr-x  32 gdarends  staff  1088 Jul  6 08:20 ..
drwxr-xr-x   9 gdarends  staff   306 Jul  6 08:22 .git
-rw-r--r--   1 gdarends  staff   126 Jul  6 08:20 .gitignore
-rw-r--r--   1 gdarends  staff   350 Jul  6 08:20 .kitchen.yml
-rw-r--r--   1 gdarends  staff    56 Jul  6 08:20 README.md
drwxr-xr-x   3 gdarends  staff   102 Jul  6 08:20 cookbooks
drwxr-xr-x   3 gdarends  staff   102 Jul  6 08:20 test

from chef-dk.

charlesjohnson avatar charlesjohnson commented on June 23, 2024

Just ran the generator with the default install, didn't move anything.

from chef-dk.

briancline avatar briancline commented on June 23, 2024

As of ChefDK 1.1.16, I still see the same behavior as @moleculezz. With chef generate app appname, there is no root-level metadata.rb, only one inside of the cookbooks/appname directory.

What exactly does the contents of this root-level metadata.rb need to look like?

from chef-dk.

Related Issues (20)

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.