Coder Social home page Coder Social logo

tools's Introduction

DEPRECATED

This project has been deprecated. For more details please see this forum post.

Amethyst Tools

Build Status Crates.io MIT/Apache License Join us on Discord Code coverage

Command-line interface for the Amethyst engine to create and deploy game projects. This project is a work in progress and is very incomplete; pardon the dust!

Vision

One of the goals of Amethyst is to split up the traditional "mega-editor" seen in many other game engines into several small but well-integrated tools, adhering to the Unix philosophy. This approach allows for nifty things like:

  • Piping and streaming data between tools like regular Unix commands.
  • Network transparency (e.g. mirroring gameplay from your development machine onto a testbed computer or smartphone).
  • Customizing your workflow to your liking with plain ol' shell scripts.
  • Stripping out tools you don't want or need, or easily supplanting them with third-party utilities.
  • Serving as backends for various "mega-editors" provided by third parties or written in-house.

Installing

By executing

cargo install amethyst_tools

a binary called amethyst will be placed in your ~/cargo/bin folder.

Usage

Creating a new project

amethyst new <project_name>

Contributing

Note: Any interaction with the Amethyst project is subject to our Code of Conduct.

Amethyst is a community-based project that welcomes contributions from anyone. If you're interested in helping out, please read the contribution guidelines before getting started.

We have a good first issue category that groups all issues or feature requests that can be made without having an extensive knowledge of Rust or Amethyst. Working on those issues is a good, if not the best, way to learn.

If you think you are not ready to code yet, you can still contribute by reviewing code written by other members of the community. Code reviews ensure that code merged into Amethyst is of the highest quality as possible. Pull requests that are available for reviews can be found here.

If for some reason we don't have any open PRs in need of a review nor any good first issues (that would be a good thing), feel free to consult our issue tracker.

License

Amethyst is free and open source software distributed under the terms of both the MIT License and the Apache License 2.0.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

tools's People

Contributors

0x6273 avatar aidapaul avatar annekitsune avatar azriel91 avatar bors[bot] avatar bradlugo avatar cauebs avatar cleancut avatar datatriny avatar ebkalderon avatar erlend-sh avatar fu5ha avatar hittherhod avatar jamesmacaulay avatar jonas-schievink avatar lschmierer avatar luciofranco avatar moxinilian avatar ogoding avatar torkleyy avatar white-oak avatar wingyplus avatar xaeroxe avatar zapanton avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tools's Issues

OpenSSL panic.

Hello, I am trying to install amethyst_tools 0.7.2 using cargo 1.29.0 and rustc version 1.29.2 on Arch Linux 4.18.14 with OpenSSL 1.1.1-1 installed from Arch's package manager.

When running env RUST_BACKTRACE=1 cargo install amethyst_tools I get the following error:

error: failed to run custom build command for `openssl v0.9.24`
process didn't exit successfully: `/tmp/cargo-installnyHFph/release/build/openssl-a1b7b949fe7f2e6f/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'Unable to detect OpenSSL version', ~/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/build.rs:16:14
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:475
   5: std::panicking::begin_panic
   6: build_script_build::main
   7: std::rt::lang_start::{{closure}}
   8: std::panicking::try::do_call
             at libstd/rt.rs:59
             at libstd/panicking.rs:310
   9: __rust_maybe_catch_panic
             at libpanic_unwind/lib.rs:105
  10: std::rt::lang_start_internal
             at libstd/panicking.rs:289
             at libstd/panic.rs:392
             at libstd/rt.rs:58
  11: main
  12: __libc_start_main
  13: _start

warning: build failed, waiting for other jobs to finish...
error: failed to compile `amethyst_tools v0.7.2`, intermediate artifacts can be found at `/tmp/cargo-installnyHFph`

I assume this is related to an OpenSSL version mismatch?

Add support for --release flag

The subcommands build, clean, and run are supposed to optionally support the --release flag and pass it along to Cargo if given by the user. So far, none of these subcommands check for its presence at all.

Supporting release builds is very important, and therefore must be added before the 1.0 release rolls around.

Update: new doesn't support --release, but run does. Oops!

Implement `amethyst deploy`

I think it would be great to have some way to deploy an Amethyst game, and the CLI seems like a good place to implement this.

Initial implementation

An initial implementation could be to simply do a release build on the host platform, copy resources + assets if they exist and package it into a zip / tar.

Further improvements

  • Do cross-compilation for other platforms
  • Create installers
  • Allow to configure other directories to copy

Openssl is not detetected on installation

Hello, i wont to paly around with amethyst and tried to install the recomanded tooling amethyst_tools.
unfortunately during installation i stumbled over the 'Unable to detect OpenSSL version' error.
Im using arch linux and have openssl 1.1.1 and 1.0 installed. Here is the stack backtrace:

   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:475
   5: std::panicking::begin_panic
   6: build_script_build::main
   7: std::rt::lang_start::{{closure}}
   8: std::panicking::try::do_call
             at libstd/rt.rs:59
             at libstd/panicking.rs:310
   9: __rust_maybe_catch_panic
             at libpanic_unwind/lib.rs:105
  10: std::rt::lang_start_internal
             at libstd/panicking.rs:289
             at libstd/panic.rs:392
             at libstd/rt.rs:58
  11: main
  12: __libc_start_main
  13: _start

Im kinda noob in such things and dont know how to proceed from here on and would appreciate any support.

The base template does not compile when using Metal (Mac OS)

This is not like #97, because I am not talking about a published version of Amethyst (like v0.13.2). This makes it a bit trickier to solve (can't just add a template in https://github.com/amethyst/tools/tree/master/templates, like #98).

The issue with Amethyst v0.13.2 (and below)

The actual issue is that amethyst v0.13.2 pulls the metal crate (metal-rs) v0.15.0:
amethyst v0.13.2
→ amethyst_animation v0.8.1
→ amethyst_rendy v0.3.0
→ rendy v0.3.2
→ rendy-command v0.3.0
→ rendy-util v0.3.1
→ gfx-backend-metal v0.2.4
→ metal v0.15.0 .

However, only metal v0.16.0 compiles, having the msg_send explicit typing fix (previous versions did not have it -> SSheldon/rust-objc#62 (comment) . This raises now a compilation error). Prior versions of metal (and some other libraries) do not compile anymore. This is the commit fixing this issue (after v0.15.0): gfx-rs/metal-rs@032800f#diff-b4aea3e418ccdb71239b96952d9cddb6

Using Amethyst master

This leaves Mac OS users no other choice (that I know of) than to use the current master, which pulls metal v0.16.0, which is great! :)

The only issue is that the v0.12.0 template (v0.12.0 is the current Amethyst version used) is not compatible with current master, which makes sense, since it has not been released yet. These are the simple fixes (one of them will already be introduced for v0.13.2) Quetzal2@6d2f66c .

Conclusion

The Mac OS platform has no straight forward way to have an Amethyst base project as of now.

Maybe it's worth waiting for the next release, but at least I wanted to raise awareness of the situation of the metal backend. Basically, earlier versions of those packages don't compile anymore, so it is important to use the latest ones.

Upgrade packages and fix CI build

As discussed in #81, we should upgrade amethyst/tools to use Rust 2018 and look into any packages that are breaking and could break the CI build.

Rename repo to amethyst-cli

The rewrite from #39 changes the intention behind the current repo's name. Discussed in #75, the repository name should be changed to amethyst-cli. The topic for the repository should also be modified.

Implement `amethyst generate`

As a developer of an Amethyst based project, I'd like the Amethyst cli to be able to generate basic building blocks without having to copy and paste boilerplate myself.

#58 includes most of these changes but needs to be rebased, and some of the logic needs to be changed as per the discussion in that PR.

Generator Subtasks:

  • State
  • Component
  • System

Other ideas for the generator command and other constituents the generator should be able to create are welcome!

Implement `amethyst destroy`

Contrasting to #78, I'd like to use the Amethyst cli to delete the building blocks it's able to create. I'd think the generate command and destroy command should be consistent in the constituents they create/delete. If you have any suggestions for said constituents, please do so in #78.

Destroyer Subtasks:

  • State
  • Component
  • System

Move useful code out of CLI tool and into shared library

I think it might be useful to move as much code as possible out from the Amethyst build tool into an amethyst_tools library target. This has several advantages:

  • Build tool becomes thin frontend for library
  • Project management and Cargo wrapper code is reused when building future tools
  • Integration tests can be written directly in Rust without having to rely on shell scripts

The new source folder structure would look like this:

  • src/
    • bin/
      • amethyst.rs
      • <tool>.rs
    • lib.rs
    • <stuff>.rs

This issue is blocked by pull request #33, which will make this much easier to accomplish.

EDIT: Looks like this change will actually be coming together with pull request #33!

Expose Cargo exit status if non-zero

Right now, the Amethyst CLI client always returns zero when calling Cargo commands, regardless of whether Cargo itself returned errors. This is why the tests.sh file doesn't work as expected, returning "All tests pass!" even when that's obviously not true (see the comments on pull request #12 for an example).

This isn't too problematic since Amethyst and its toolchain are in the 0.X.Y release stage, but nonetheless this must be fixed before 1.0 rolls around.

Initial scaffold doesn't build

Description

The out-of-box experience with Amethyst tools is suboptimal due to the generated application not working properly. I was following the steps from the book and failed to get the Hello World example to work. I then tried to make a new project without changing the contents of src/main.rs which yielded the results produced in this report.

Steps to reproduce

  1. Create a new project:
$ amethyst new hello_world
  1. Move into that project and attempt to run:
$ cd hello_world
$ amethyst run

Expected result

I'd expect to see the result of having run the program. I've never used amethyst before, But I suspect the output should look something like this:

$ amethyst run
Game started!
Hello from Amethyst!
Game stopped!

Actual Result

error[E0432]: unresolved import `amethyst::engine::Application`
 --> src/main.rs:3:24
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                        ^^^^^^^^^^^ no `Application` in `engine`

error[E0432]: unresolved import `amethyst::engine::Duration`
 --> src/main.rs:3:37
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                                     ^^^^^^^^ no `Duration` in `engine`

error[E0432]: unresolved import `amethyst::engine::State`
 --> src/main.rs:3:47
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                                               ^^^^^ no `State` in `engine`. Did you mean to use `state`?

error[E0432]: unresolved import `amethyst::engine::Trans`
 --> src/main.rs:3:54
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                                                      ^^^^^ no `Trans` in `engine`

error: module `engine` is private
 --> src/main.rs:3:24
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                        ^^^^^^^^^^^

error: module `engine` is private
 --> src/main.rs:3:37
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                                     ^^^^^^^^

error: module `engine` is private
 --> src/main.rs:3:47
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                                               ^^^^^

error: module `engine` is private
 --> src/main.rs:3:54
  |
3 | use amethyst::engine::{Application, Duration, State, Trans};
  |                                                      ^^^^^

error: cannot continue compilation due to previous error

error: Could not compile `hello_world`.

To learn more, run the command again with --verbose.
Error: Cargo task failed!

System information

$ rustc --version
rustc 1.17.0
$ amethyst --version
amethyst_cli 0.4.0
$ cargo --version
cargo 0.18.0 (fe7b0cdc 2017-04-24)
$ uname -a
Linux vapor 4.10.11-1-ARCH #1 SMP PREEMPT Tue Apr 18 08:39:42 CEST 2017 x86_64 GNU/Linux

Here is the contents of the src/main.rs file that the new command generated:

extern crate amethyst;

use amethyst::engine::{Application, Duration, State, Trans};

struct HelloWorld;

impl State for HelloWorld {
    fn on_start(&mut self) {
        println!("Game started!");
    }

    fn update(&mut self, _delta: Duration) -> Trans {
        println!("Hello from Amethyst!");
        Trans::Quit
    }

    fn on_stop(&mut self) {
        println!("Game stopped!");
    }
}

fn main() {
    let mut game = Application::new(HelloWorld);
    game.run();
}

Note that it's different than what the tutorial asks me to input. I was getting a different (though similar) set of errors, so wanted to do the minimal amount of work for a reproducible case.

Issue using cargo to install

Im currently using cargo 0.7.0-nightly (1af03be 2015-12-08)
using the following command:

cargo install amethyst_tools --verbose
    Updating registry `https://github.com/rust-lang/crates.io-index`
failed to unpack package `amethyst_tools v0.2.4`

Caused by:
  No such file or directory (os error 2)

However I was able to install when specifying the repo directly

cargo install --git https://github.com/ebkalderon/amethyst_tools

I also spun up an ubuntu vm with a clean install of rust/cargo and got the same error as the above

Adopt new change log format

The CHANGELOG.md file in this repository is not very well organized nor properly maintained. We should adopt a style similar to Keep A Changelog, which seems much cleaner.

This issue is a dependency of the tools repository restructuring effort (issue #4), and an equivalent to ebkalderon/amethyst#17.

Progress is still being done on the reorg branch.

Move new_project.zip into seperate repository

Because of Git is not good at handling binary blobs and it is not easy to examine the content of new_project.zip without downloading and unzipping it, I suggest to put the contents of it into a seperate Git repository.

The repository will be located in amethyst/project_template.

The template is included in amethyst/tools using Git submodules.
It is bundled together with the tools CLI on build.

Pull request #32

Discussion about tooling and editors

NOTE: Please see amethyst/amethyst#875 for more up to date information.

Issue/discussion revolving around the tooling of amethyst. For example, scene editors, visual scripting editors, tree views of components, etc.

Hotreloading should be at the core of most tooling. Modifying an entity file in any way should be updated in the game world for fast iteration. Some basic CLI around amethyst could make this easier:
amethyst watch could open an "editor window" and watches for modifications to the files related to the game for updates.

Game state in the editor should be handled in two modes, halted and running In the halted mode the world does not have systems running and no components should be modified by the game. Modifications in this mode should come from tools that can modify the files related to the game and have it updated in the game. Alternatively, tooling could also interact with the game world, for example clicking on some Mesh in the editor could highlight the entity related in the tooling as well as able to be moved around.

It would also be ideal if most tooling was under one UI toolkit so it would be possible to have layouts of tools from different libraries. Nuklear seems like a decent choice for a simple but extensive library for handling UI.

Repo: https://github.com/vurtun/nuklear
Bindings: https://github.com/snuk182/nuklear-rust (beta as it says, so we could probably help out here)

Question: is x11 server supported?

Trying to run a working app with WSL (ubuntu) prints the following error:

(also happens on newly created projects via CLI)

Is x11 not supported? or am I missing something?

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: NoAvailablePixelFormat', libcore/result.rs:1009:5
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:71
             at libstd/sys_common/backtrace.rs:59
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:211
   3: std::panicking::default_hook
             at libstd/panicking.rs:227
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:477
   5: std::panicking::continue_panic_fmt
             at libstd/panicking.rs:391
   6: rust_begin_unwind
             at libstd/panicking.rs:326
   7: core::panicking::panic_fmt
             at libcore/panicking.rs:77
   8: core::result::unwrap_failed
             at libcore/macros.rs:26
   9: <core::result::Result<T, E>>::unwrap
             at libcore/result.rs:808
  10: gfx_window_glutin::init_raw
             at /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/gfx_window_glutin-0.26.0/src/lib.rs:144
  11: gfx_window_glutin::init
             at /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/gfx_window_glutin-0.26.0/src/lib.rs:67
  12: amethyst_renderer::renderer::init_backend
             at /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/amethyst_renderer-0.9.0/src/renderer.rs:305
  13: amethyst_renderer::renderer::RendererBuilder::build
             at /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/amethyst_renderer-0.9.0/src/renderer.rs:213
  14: <amethyst_renderer::system::RenderSystem<P>>::build
             at /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/amethyst_renderer-0.9.0/src/system.rs:58
  15: <amethyst_renderer::bundle::RenderBundle<'c, B, P> as amethyst_core::bundle::SystemBundle<'a, 'b>>::build
             at /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/amethyst_renderer-0.9.0/src/bundle.rs:115
  16: amethyst::game_data::GameDataBuilder::with_bundle
             at /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/amethyst-0.9.0/src/game_data.rs:214
  17: titan::main
             at src/main.rs:29
  18: std::rt::lang_start::{{closure}}
             at libstd/rt.rs:74
  19: std::panicking::try::do_call
             at libstd/rt.rs:59
             at libstd/panicking.rs:310
  20: __rust_maybe_catch_panic
             at libpanic_unwind/lib.rs:103
  21: std::rt::lang_start_internal
             at libstd/panicking.rs:289
             at libstd/panic.rs:392
             at libstd/rt.rs:58
  22: std::rt::lang_start
             at libstd/rt.rs:74
  23: main
  24: __libc_start_main
  25: _start

liquid-value is failing on nightly (again)

cargo install amethyst_tools
...
error: lifetime may not live long enough
  --> /home/kraemahz/.cargo/registry/src/github.com-1ecc6299db9ec823/liquid-value-0.18.1/src/scalar.rs:60:54
   |
29 | impl<'s> ScalarCow<'s> {
   |      -- lifetime `'s` defined here
...
60 |             ScalarCowEnum::Str(ref x) => Scalar::new(x.as_ref()),
   |                                                      ^^^^^^^^^^ argument requires that `'s` must outlive `'static`

error: lifetime may not live long enough
  --> /home/kraemahz/.cargo/registry/src/github.com-1ecc6299db9ec823/liquid-value-0.18.1/src/scalar.rs:60:54
   |
54 |     pub fn as_ref<'r: 's>(&'r self) -> ScalarCow<'r> {
   |                   -- lifetime `'r` defined here
...
60 |             ScalarCowEnum::Str(ref x) => Scalar::new(x.as_ref()),
   |                                                      ^^^^^^^^^^ argument requires that `'r` must outlive `'static`

error: aborting due to 2 previous errors

Cargo stdout doesn't appear until process exits

When calling any Amethyst subcommand which utilizes the cargo::call() wrapper, the output doesn't appear immediately on the screen.

This is because std::process::Command works like this by design, buffering the output until the process exits and then displays it all at once on the screen. Eventually, we need to find an alternative library or design that allows immediate display of stdout/stderr as the process runs.

I'm classifying this as a bug, as it makes the command very irritating from a UX point of view. This must be fixed before 1.0.

Reorganize project infrastructure

There are some major changes coming to our core infrastructure. Currently, the overall Amethyst project consists of three repositories: amethyst, amethyst_cli, and amethyst_opengl.

Amethyst is set for future expansion, and the current approach to organizing our code is not maintainable. I propose the following:

  • Consolidate all of the tools into an "amethyst_tools" repository. All future tools will reside only in this repository.
    • Move the "amethyst_cli" crate into this repository.

This might cause some breakage, but this must be minimized as much as possible. Let's use Piston's approach for managing multiple crates under one repository as prior art.

Progress has begun on the reorg branch.

This is the tools-side counterpart of Amethyst issue #13.

Edit: See the caveats below.

use of unstable library feature 'iterator_flatten' ( new project created in amethyst_tools 0.7.4)

Got the following error after:

$ amethyst new random_project
$ cd random_project
$ cargo build
   Compiling amethyst_ui v0.4.0
error[E0658]: use of unstable library feature 'iterator_flatten' (see issue #48213)
  --> /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/amethyst_ui-0.4.0/src/font/systemfont.rs:22:10
   |
22 |         .flatten()
   |          ^^^^^^^

error[E0658]: use of unstable library feature 'iterator_flatten' (see issue #48213)
  --> /home/kysxd/.cargo/registry/src/github.com-1ecc6299db9ec823/amethyst_animation-0.4.0/src/skinning/systems.rs:87:24
   |
87 |                     }).flatten()
   |                        ^^^^^^^

error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: Could not compile `amethyst_animation`.
warning: build failed, waiting for other jobs to finish...
error: aborting due to previous error

For more information about this error, try `rustc --explain E0658`.
error: Could not compile `amethyst_ui`.

To learn more, run the command again with --verbose.

Running on Manjaro linux.

Is it related to the cli or amethyst itself?

Gives unhelpful error message if git is not installed

I didn't have git installed yet on my new laptop and amethyst_tools was giving me a rather unhelpful message when making a new project:

> amethyst new pong
error: project creation for project "pong" failed
caused by: No such file or directory (os error 2)

No such error is displayed now that git is installed.

fail to create new game after deleting tool source

When I executed the ‘amethyst new’ command, the tool successfully created a new folder, but the creation of the new game project failed, the details are as follows:

lws@lws-deepin:/tool/project/games$ RUST_BACKTRACE=1 amethyst new pong -a 0.10.0
thread 'main' panicked at 'called Result::unwrap() on an Err value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', libcore/result.rs:1009:5
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::print
at libstd/sys_common/backtrace.rs:71
at libstd/sys_common/backtrace.rs:59
2: std::panicking::default_hook::{{closure}}
at libstd/panicking.rs:211
3: std::panicking::default_hook
at libstd/panicking.rs:227
4: std::panicking::rust_panic_with_hook
at libstd/panicking.rs:476
5: std::panicking::continue_panic_fmt
at libstd/panicking.rs:390
6: rust_begin_unwind
at libstd/panicking.rs:325
7: core::panicking::panic_fmt
at libcore/panicking.rs:77
8: core::result::unwrap_failed
9: std::sync::once::Once::call_once::{{closure}}
10: std::sync::once::Once::call_inner
at libstd/sync/once.rs:397
11: amethyst_cli::templates::deploy
12: amethyst_cli::new::New::execute
13: amethyst::main
14: std::rt::lang_start::{{closure}}
15: std::panicking::try::do_call
at libstd/rt.rs:59
at libstd/panicking.rs:310
16: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:102
17: std::rt::lang_start_internal
at libstd/panicking.rs:289
at libstd/panic.rs:392
at libstd/rt.rs:58
18: main
19: __libc_start_main
20: _start

regex parse error on windows

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Syntax(

regex parse error:
]) (?<last>[^
     ^
error: unrecognized flag
)', libcore\result.rs:945:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.

tools/src/templates.rs 119 line

Regex::new("(?<last>[^\r])\n")
REGEX example is
let re = Regex::new(r"(?P<last>[^,\s]+),\s+(?P<first>\S+)").unwrap();
let result = re.replace("Springsteen, Bruce", "$first $last");
assert_eq!(result, "Bruce Springsteen");

maybe **Regex::new("(?P[^\r])\n") ** is rignt?

Cargo stderr only prints after stdout

The current behavior of the execute_if!() macro in the amethyst_cli tool is to print out error text (unformatted) immediately before quitting the program. Though this is perfectly fine for most cases, this can make redirected Cargo output from amethyst new, amethyst build, amethyst run, etc. print out at the wrong times, and also lacking colorization.

A likely solution would be to make the Cargo stderr print out alongside the stdout using an approach similar to that used to resolve issue #1. We can then have execute_if!() print out any amethyst_cli specific errors, like compressing resources and the like.

amethyst cli doesn't init git repo

See #10, there is also no .gitignore created (but these go hand in hand)

As the amethyst CLI tries to emulate cargo cli, in my opinion it should also initialize a git repo like cargo does.

Amethyst CLI (sorry for the time it took me to derp around)

peek 2019-01-15 17-19

Cargo CLI

peek 2019-01-15 17-22

Implement remaining subcommands

The following subcommands panic emit an unimplemented! when executed without the (-h | --help) flag:

  • deploy - Compresses and deploys the project as a distributable program
  • module - Adds or removes engine subsystems

This issue will track the development status of these commands.

Install broken, dependency compiling error on tokyo-rustls

Hello, I'm trying to use amethyst-tools but it seems some dependency is broken or has been using something unstable from rust nightly.

Running $ cargo install amethyst_tools

   Compiling tokio-rustls v0.10.2
error: enum variants on type aliases are experimental
   --> /home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-rustls-0.10.2/src/lib.rs:260:9
    |
260 |         Self::Client(s)
    |         ^^^^^^^^^^^^

error: enum variants on type aliases are experimental
   --> /home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-rustls-0.10.2/src/lib.rs:266:9
    |
266 |         Self::Server(s)
    |         ^^^^^^^^^^^^

error: aborting due to 2 previous errors

error: Could not compile `tokio-rustls`.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `amethyst_tools v0.9.0`, intermediate artifacts can be found at `/tmp/cargo-installsclw1u`

Caused by:
  build failed

My system specs:

  • Lubuntu 19.04
  • cargo 1.36.0 (c4fcfb725 2019-05-15)
  • rustc 1.36.0 (a53f9df32 2019-07-03)
  • rustup 1.19.0 (2af131cf9 2019-09-08)

Searching around for this error I found out that using nightly might solve this experimental feature error: paritytech/substrate#3523

So i've installed the latest nightly build:
$ rustup update nightly
nightly-x86_64-unknown-linux-gnu installed - rustc 1.40.0-nightly (c27f7568b 2019-10-13)

Using this version fixed the tokyo-rustls problem, but created another one on Ron:
$ cargo +nightly install amethyst-tools

cargo +nightly install amethyst_tools
    Updating crates.io index
  Installing amethyst_tools v0.9.0
   Compiling libc v0.2.62
   ...
   Compiling publicsuffix v1.5.3
   Compiling tokio-rustls v0.10.2
   Compiling serde_derive v1.0.101
   Compiling pest_derive v2.1.0
   Compiling failure v0.1.6
   Compiling semver v0.9.0
   Compiling liquid-value v0.18.1
   Compiling ron v0.5.1
error: lifetime may not live long enough
  --> /home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/liquid-value-0.18.1/src/scalar.rs:60:54
   |
29 | impl<'s> ScalarCow<'s> {
   |      -- lifetime `'s` defined here
...
60 |             ScalarCowEnum::Str(ref x) => Scalar::new(x.as_ref()),
   |                                                      ^^^^^^^^^^ argument requires that `'s` must outlive `'static`

error: lifetime may not live long enough
  --> /home/pablo/.cargo/registry/src/github.com-1ecc6299db9ec823/liquid-value-0.18.1/src/scalar.rs:60:54
   |
54 |     pub fn as_ref<'r: 's>(&'r self) -> ScalarCow<'r> {
   |                   -- lifetime `'r` defined here
...
60 |             ScalarCowEnum::Str(ref x) => Scalar::new(x.as_ref()),
   |                                                      ^^^^^^^^^^ argument requires that `'r` must outlive `'static`

error: aborting due to 2 previous errors

error: could not compile `liquid-value`.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `amethyst_tools v0.9.0`, intermediate artifacts can be found at `/tmp/cargo-installsoF7cK`

Caused by:
  build failed

I haven't found a way yet around this installation errors. Should I install a specific version of amethyst-tools that doesn't use this tokyo-rustls or something?

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.