Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Derive component conflict resolve #1

Merged

Commits on Jun 7, 2021

  1. [assets] remove unnecessary temporary strong handles (bevyengine#2304)

    # Objective
    
    - When creating an asset, the `update_asset_storage` function was unnecessarily creating an extraneous `Handle` to the created asset via calling `set`. This has some overhead as the `RefChange::Increment/Decrement` event was being sent.  
    - A similar exteraneous handle is also created in `load_async` when loading dependencies. 
    
    ## Solution
    
    - Have the implementation use `Assets::set_untracked` and `AssetServer::load_untracked` so no intermediate handle is created.
    NathanSWard committed Jun 7, 2021
    Configuration menu
    Copy the full SHA
    27d809f View commit details
    Browse the repository at this point in the history
  2. Removed redundant visibility check (bevyengine#2311)

    Since `visible_entities_system` already checks `Visiblie::is_visible` for each entity and requires it to be `true`, there's no reason to verify visibility in `PassNode::prepare` which consumes entities produced by the system.
    YohDeadfall committed Jun 7, 2021
    Configuration menu
    Copy the full SHA
    a404eb2 View commit details
    Browse the repository at this point in the history
  3. Automated PR labeling (bevyengine#2301)

    # Objective
    
    - Currently only issues automatically have labels assigned to them on creation.
    - The enables pull requests to have the same functionality and currently only adds the `needs-triage` label to all PRs.
    
    ## Solution
    
    - Integrate `actions/labeler@v2` into the github workflows to automatically tag PRs.
    - Add a `label-config.yml` file that specifies how PRs should be labeled.
    NathanSWard committed Jun 7, 2021
    Configuration menu
    Copy the full SHA
    17877e8 View commit details
    Browse the repository at this point in the history
  4. fix automated pr labeling (bevyengine#2316)

    # Objective
    
    - the PR labeler workflow will always add the `needs-traige` label to every pull request event
    
    ## Solution
    
    - Limit this workflow to only be on the `opened` event
    NathanSWard committed Jun 7, 2021
    Configuration menu
    Copy the full SHA
    21330a7 View commit details
    Browse the repository at this point in the history

Commits on Jun 8, 2021

  1. Add a readme to bevy_ecs (bevyengine#2028)

    [RENDERED](https://github.com/NiklasEi/bevy/blob/ecs_readme/crates/bevy_ecs/README.md)
    
    Since I am trying to learn more about Bevy ECS at the moment, I thought this issue is a perfect fit.
    
    This PR adds a readme to the `bevy_ecs` crate containing a minimal running example of stand alone `bevy_ecs`. Unique features like customizable component storage, Resources or change detection are introduced. For each of these features the readme links to an example in a newly created examples directory inside the `bevy_esc` crate.
    
    Resolves bevyengine#2008 
    
    Co-authored-by: Carter Anderson <mcanders1@gmail.com>
    NiklasEi and cart committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    cebb553 View commit details
    Browse the repository at this point in the history
  2. expose texture/image conversions as From/TryFrom (bevyengine#2175)

    fixes bevyengine#2169 
    
    Instead of having custom methods with reduced visibility, implement `From<image::DynamicImage> for Texture` and `TryFrom<Texture> for image::DynamicImage`
    mockersf committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    c2722f7 View commit details
    Browse the repository at this point in the history
  3. [assets] set LoadState properly and more testing! (bevyengine#2226)

    1) Sets `LoadState` properly on all failing cases in `AssetServer::load_async`
    2) Adds more tests for sad and happy paths of asset loading
    
    _Note_: this brings in the `tempfile` crate.
    NathanSWard committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    fe32a60 View commit details
    Browse the repository at this point in the history
  4. Log errors when loading textures from a gltf file (bevyengine#2260)

    When loading a gltf, if there is an error loading textures, it is completely ignored.
    
    This can happen for example when loading a file with `jpg` textures without the `jpeg` Bevy feature enabled.
    This PR adds `warn` logs for the few cases that can happen when loading a texture.
    
    Other possible fix would be to break on first error and returning, making the asset loading failed
    mockersf committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    7835c92 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    ac04c71 View commit details
    Browse the repository at this point in the history
  6. [assets] properly set LoadState with invalid asset extension (bevye…

    …ngine#2318)
    
    # Objective
    
    - Currently, when calling any of the `AssetServer`'s `load` functions, if the extension does not exist for the given path, the returned handle's load state is always `LoadState::NotLoaded`. 
    - This is due to the `load_async` function early returning without properly creating a `SourceInfo` for the requested asset.
    - Fixes bevyengine#2261
    
    ## Solution
    - Add the `SourceInfo` prior to checking for valid extension loaders. And set the `LoadState` to `Failed` if the according loader does not exist.
    NathanSWard committed Jun 8, 2021
    Configuration menu
    Copy the full SHA
    e549f14 View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2021

  1. Add minimum sizes to textures to prevent crash (bevyengine#2300)

    # Objective
    - Fixes bevyengine#2299
    
    ## Solution
    - Ensures that textures are never requested with 0 height/width.
    trolleyman committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    a40ec1c View commit details
    Browse the repository at this point in the history
  2. Document FromType trait (bevyengine#2323)

    # Objective
    
    Prevent future unnecessary mental effort spent figuring out why this trait exists and how to resolve the `TODO`.
    
    ## Solution
    
    I happened to notice this trait being used when expanding the `#[derive(Reflect)]` macro in my own crate to figure out how it worked, and noticed that there was a `TODO` comment on it because it is only used in the derive macro and thus appeared to be unused.
    
    I figured I should document my findings to prevent someone else from finding them out the hard way in the future 😆 
    
    Co-authored-by: Waridley <Waridley64@gmail.com>
    Waridley and Waridley committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    5b0f40f View commit details
    Browse the repository at this point in the history
  3. Update deny license to remove MPL as an allowed license (bevyengine#2327

    )
    
    # Objective
    
    - MPL should not be an authorised license for all crates
    
    ## Solution
    
    - Add exception for MPL for wgpu and hexasphere
    - Remove security issue for a crate we don't depend on anymore
    mockersf committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    19799b8 View commit details
    Browse the repository at this point in the history
  4. Fix bad bounds for NonSend SystemParams (bevyengine#2325)

    # Objective
    
    Currently, you can't call `is_added` or `is_changed` on a `NonSend` SystemParam, unless the Resource is a Component (implements `Send` and `Sync`). 
    This defeats the purpose of providing change detection for NonSend Resources.
    While fixing this, I also noticed that `NonSend` does not have a bound at all on its struct.
    
    ## Solution
    
    Change the bounds of `T` to always be `'static`.
    MinerSebas committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    63047b2 View commit details
    Browse the repository at this point in the history
  5. implement DetectChanges for NonSendMut (bevyengine#2326)

    # Objective
    
    - The `DetectChanges` trait is used for types that detect change on mutable access (such as `ResMut`, `Mut`, etc...)
    - `DetectChanges` was not implemented for `NonSendMut`
    
    ## Solution
    
    - implement `NonSendMut` in terms of `DetectChanges`
    NathanSWard committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    b07b2f5 View commit details
    Browse the repository at this point in the history
  6. [assets] Fix AssetServer::get_handle_path (bevyengine#2310)

    # Objective
    
    - Currently `AssetServer::get_handle_path` always returns `None` since the inner hash map is never written to.
    
    ## Solution
    
    - Inside the `load_untracked` function, insert the asset path into the map.
    
    This is similar to bevyengine#1290 (thanks @TheRawMeatball)
    NathanSWard committed Jun 9, 2021
    Configuration menu
    Copy the full SHA
    71bf07f View commit details
    Browse the repository at this point in the history

Commits on Jun 18, 2021

  1. fix clippy warning failing on CI (bevyengine#2353)

    # Objective
    
    - CI jobs are starting to fail due to `clippy::bool-assert-comparison` and `clippy::single_component_path_imports` being triggered.
    
    ## Solution
    
    - Fix all uses where `asset_eq!(<condition>, <bool>)` could be replace by `assert!`
    - Move the `#[allow()]` for `single_component_path_imports` to `#![allow()]` at the start of the files.
    NathanSWard committed Jun 18, 2021
    Configuration menu
    Copy the full SHA
    00d8d5d View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2021

  1. Exclude some Branches from running CI (bevyengine#2344)

    # Objective
    
    bevyengine#2230 allowed the CI to run on every Branch of this Repo.
    But some Branches should not actually run the CI, which wastes the available capacity of CI runners.
    
    ### staging-squash-merge.tmp
    
    This Branch is used by Bors when squashing a PR. 
    CI shouldn't need to run here, as the actual verification happens in the staging branch
    
    ![ci](https://user-images.githubusercontent.com/66798382/122072006-82ccad00-cdf7-11eb-84c8-29356594180d.PNG)
    ![ci2](https://user-images.githubusercontent.com/66798382/122072030-85c79d80-cdf7-11eb-8c30-2e3088d47285.png)
    
    ### dependabot/**
    
    Dependabot creates its branches in this Repo, which causes the CI to run twice on the same commit
    ![ci3](https://user-images.githubusercontent.com/66798382/122072345-c6bfb200-cdf7-11eb-8de6-3ffcbf641631.PNG)
    
    
    ## Solution
    
    Exclude those branches from running CI.
    MinerSebas committed Jun 22, 2021
    Configuration menu
    Copy the full SHA
    39271f2 View commit details
    Browse the repository at this point in the history
  2. Derive Clone for Time (bevyengine#2360)

    # Objective
    
    - Make it so that `Time` can be cloned
    - Makes it so I can clone the entire current `Time` and easily pass it to the user in [Rusty Engine](https://github.com/CleanCut/rusty_engine) instead of [doing this](https://github.com/CleanCut/rusty_engine/blob/8302dc3914d5b14b730e994cca452ce8d252fec2/src/game.rs#L147-L150)
    
    ## Solution
    
    - Derive the `Clone` trait on `Time`
    CleanCut committed Jun 22, 2021
    Configuration menu
    Copy the full SHA
    f71f93c View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2021

  1. Added helpful adders for systemsets (bevyengine#2366)

    # Objective
    
    - This adds a way to add `SystemSet`s to Apps.
    CGMossa committed Jun 23, 2021
    Configuration menu
    Copy the full SHA
    3106dc4 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2021

  1. Update wgpu requirement from 0.8 to 0.9 (bevyengine#2371)

    Updates the requirements on [wgpu](https://github.com/gfx-rs/wgpu) to permit the latest version.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/gfx-rs/wgpu/blob/master/CHANGELOG.md">wgpu's changelog</a>.</em></p>
    <blockquote>
    <h1>Change Log</h1>
    <h2>v0.9 (2021-06-18)</h2>
    <ul>
    <li>Updated:
    <ul>
    <li>naga to <code>v0.5</code>.</li>
    </ul>
    </li>
    <li>Added:
    <ul>
    <li><code>Features::VERTEX_WRITABLE_STORAGE</code>.</li>
    <li><code>Features::CLEAR_COMMANDS</code> which allows you to use <code>cmd_buf.clear_texture</code> and <code>cmd_buf.clear_buffer</code>.</li>
    </ul>
    </li>
    <li>Changed:
    <ul>
    <li>Updated default storage buffer/image limit to <code>8</code> from <code>4</code>.</li>
    </ul>
    </li>
    <li>Fixed:
    <ul>
    <li><code>Buffer::get_mapped_range</code> can now have a range of zero.</li>
    <li>Fixed output spirv requiring the &quot;kernal&quot; capability.</li>
    <li>Fixed segfault due to improper drop order.</li>
    <li>Fixed incorrect dynamic stencil reference for Replace ops.</li>
    <li>Fixed tracking of temporary resources.</li>
    <li>Stopped unconditionally adding cubemap flags when the backend doesn't support cubemaps.</li>
    </ul>
    </li>
    <li>Validation:
    <ul>
    <li>Ensure that if resources are viewed from the vertex stage, they are read only unless <code>Features::VERTEX_WRITABLE_STORAGE</code> is true.</li>
    <li>Ensure storage class (i.e. storage vs uniform) is consistent between the shader and the pipeline layout.</li>
    <li>Error when a color texture is used as a depth/stencil texture.</li>
    <li>Check that pipeline output formats are logical</li>
    <li>Added shader label to log messages if validation fails.</li>
    </ul>
    </li>
    <li>Tracing:
    <ul>
    <li>Make renderpasses show up in the trace before they are run.</li>
    </ul>
    </li>
    <li>Docs:
    <ul>
    <li>Fix typo in <code>PowerPreference::LowPower</code> description.</li>
    </ul>
    </li>
    <li>Player:
    <ul>
    <li>Automatically start and stop RenderDoc captures.</li>
    </ul>
    </li>
    <li>Examples:
    <ul>
    <li>Handle winit's unconditional exception.</li>
    </ul>
    </li>
    <li>Internal:
    <ul>
    <li>Merged wgpu-rs and wgpu back into a single repository.</li>
    <li>The tracker was split into two different stateful/stateless trackers to reduce overhead.</li>
    <li>Added code coverage testing</li>
    <li>CI can now test on lavapipe</li>
    <li>Add missing extern &quot;C&quot; in wgpu-core on <code>wgpu_render_pass_execute_bundles</code></li>
    <li>Fix incorrect function name <code>wgpu_render_pass_bundle_indexed_indirect</code> to <code>wgpu_render_bundle_draw_indexed_indirect</code>.</li>
    </ul>
    </li>
    </ul>
    <h2>wgpu-types-0.8.1 (2021-06-08)</h2>
    <ul>
    <li>fix dynamic stencil reference for Replace ops</li>
    </ul>
    <h2>v0.8.1 (2021-05-06)</h2>
    <ul>
    <li>fix SPIR-V generation from WGSL, which was broken due to &quot;Kernel&quot; capability</li>
    <li>validate buffer storage classes</li>
    </ul>
    <h2>Unreleased</h2>
    <ul>
    <li>Added support for storage texture arrays for Vulkan and Metal.</li>
    </ul>
    <h2>v0.8 (2021-04-29)</h2>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a href="https://github.com/gfx-rs/wgpu/commits">compare view</a></li>
    </ul>
    </details>
    <br />
    
    
    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    
    
    </details>
    dependabot[bot] committed Jun 24, 2021
    Configuration menu
    Copy the full SHA
    f91def5 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2021

  1. Update hexasphere to 4.0.0. (bevyengine#2390)

    # Objective
    
    - Update `hexasphere` to 4.0.0, which is now licensed with dual MIT/Apache-2.0.
    OptimisticPeach committed Jun 25, 2021
    Configuration menu
    Copy the full SHA
    7602317 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3a1867a View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2021

  1. update to major version 3 of action labeler (bevyengine#2340)

    # Objective
    
    - update action labeler
    
    ## Solution
    
    - Update to major version to not get notification update of every patch.
    - Replace bevyengine#2338.
    mockersf committed Jun 26, 2021
    Configuration menu
    Copy the full SHA
    7854be7 View commit details
    Browse the repository at this point in the history
  2. Allow Option<NonSend<T>> and Option<NonSendMut<T>> as SystemParam (be…

    …vyengine#2345)
    
    # Objective
    
    Currently, you can add `Option<Res<T>` or `Option<ResMut<T>` as a SystemParam, if the Resource could potentially not exist, but this functionality doesn't exist for `NonSend` and `NonSendMut`
    
    ## Solution
    
    Adds implementations to use `Option<NonSend<T>>` and Option<NonSendMut<T>> as SystemParams.
    MinerSebas committed Jun 26, 2021
    Configuration menu
    Copy the full SHA
    b8f3d9c View commit details
    Browse the repository at this point in the history
  3. Fixes Timer Precision Error Causing Panic (bevyengine#2362)

    # Objective
    
    Fixes bevyengine#2361 
    
    ## Solution
    
    Uses integer division instead of floating-point which prevents precision errors, I think.
    jacobgardner committed Jun 26, 2021
    Configuration menu
    Copy the full SHA
    52e8a19 View commit details
    Browse the repository at this point in the history
  4. bevy_utils: Re-introduce with_capacity(). (bevyengine#2393)

    # Objective
    Re-introduce `AHashExt` and respective `with_capacity()` implementations to give a more ergonomic way to set a `HashMap` / `HashSet` capacity.
    
    As a note, this has also been discussed and agreed on issue bevyengine#2115, which this PR addresses (leaving `new()` out of the `AHashExt` trait).
    
    Fixes bevyengine#2115.
    
    ## Solution
    PR bevyengine#1235 had removed the `AHashExt` trait and respective `with_capacity()`s implementations, leaving only the less ergonomic `HashMap::with_capacity_and_hasher(size, Default::default())` option available.
    
    This re-introduces `AHashExt` and respective `with_capacity()` implementations to give a more ergonomic way to set a `HashMap` / `HashSet` capacity.
    tiagolam committed Jun 26, 2021
    Configuration menu
    Copy the full SHA
    1bc34b4 View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2021

  1. Optional .system (bevyengine#2398)

    This can be your 6 months post-christmas present.
    
    # Objective
    
    - Make `.system` optional
    - yeet
    - It's ugly
    - Alternative title: `.system` is dead; long live `.system`
    - **yeet**
    
    ## Solution
    
    - Use a higher ranked lifetime, and some trait magic.
    
    N.B. This PR does not actually remove any `.system`s, except in a couple of examples. Once this is merged we can do that piecemeal across crates, and decide on syntax for labels.
    DJMcNab committed Jun 27, 2021
    Configuration menu
    Copy the full SHA
    c893b99 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2021

  1. Commands benchmarking (bevyengine#2334)

    # Objective
    
    - Currently the `Commands` and `CommandQueue` have no performance testing. 
    - As `Commands` are quite expensive due to the `Box<dyn Command>` allocated for each command, there should be perf tests for implementations that attempt to improve the performance.  
    
    ## Solution
    
    - Add some benchmarking for `Commands` and `CommandQueue`.
    NathanSWard committed Jun 28, 2021
    Configuration menu
    Copy the full SHA
    46b822e View commit details
    Browse the repository at this point in the history

Commits on Jun 29, 2021

  1. Optional .system(), part 2 (bevyengine#2403)

    # Objective
    
    - Extend work done in bevyengine#2398.
    - Make `.system()` syntax optional when using system descriptor API.
    
    ## Solution
    
    - Slight change to `ParallelSystemDescriptorCoercion` signature and implementors.
    
    ---
    
    I haven't touched exclusive systems, because it looks like the only two other solutions are going back to doubling our system insertion methods, or starting to lean into stageless. The latter will invalidate the former, so I think exclusive systems should remian pariahs until stageless.
    
    I can grep & nuke `.system()` thorughout the codebase now, which might take a while, or we can do that in subsequent PR(s).
    Ratysz committed Jun 29, 2021
    Configuration menu
    Copy the full SHA
    10f2dd3 View commit details
    Browse the repository at this point in the history

Commits on Jun 30, 2021

  1. [ecs] add StorageType documentation (bevyengine#2394)

    # Objective
    
    - Add inline documentation for `StorageType`.
    - Currently the README in `bevy_ecs` provides docs for `StorageType`, however, adding addition inline docs makes it simpler for users who are actively reading the source code.
    
    ## Solution
    - Add inline docs.
    NathanSWard committed Jun 30, 2021
    Configuration menu
    Copy the full SHA
    c8e2415 View commit details
    Browse the repository at this point in the history

Commits on Jul 1, 2021

  1. Optional .system(), part 3 (bevyengine#2422)

    # Objective
    
    - Continue work of bevyengine#2398 and bevyengine#2403.
    - Make `.system()` syntax optional when using `.config()` API.
    
    ## Solution
    
    - Introduce new prelude trait, `ConfigurableSystem`, that shorthands `my_system.system().config(...)` as `my_system.config(...)`.
    - Expand `configure_system_local` test to also cover the new syntax.
    Ratysz committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    afb3323 View commit details
    Browse the repository at this point in the history
  2. Fix view vector in pbr frag to work in ortho (bevyengine#2370)

    # Objective
    
    Fixes bevyengine#2369
    
    ## Solution
    
    Use the view forward direction for all frags when using ortho view.
    aevyrie committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    46cae59 View commit details
    Browse the repository at this point in the history
  3. Mention creation of disjoint Querys with Without<T> in conflicting …

    …access Panic (bevyengine#2413)
    
    # Objective
    
    Beginners semi-regularly appear on the Discord asking for help with using `QuerySet` when they have a system with conflicting data access.
    This happens because the Resulting Panic message only mentions `QuerySet` as a solution, even if in most cases `Without<T>` was enough to solve the problem.
    
    ## Solution
    
    Mention the usage of `Without<T>` to create disjoint queries as an alternative to `QuerySet`
    
    ## Open Questions
    
    - Is `disjoint` a too technical/mathematical word?
    - Should `Without<T>` be mentioned before or after `QuerySet`?
      - Before: Using `Without<T>` should be preferred and mentioning it first reinforces this for a reader.
      - After: The Panics can be very long and a Reader could skip to end and only see the `QuerySet`
    
    
    Co-authored-by: MinerSebas <66798382+MinerSebas@users.noreply.github.com>
    MinerSebas and MinerSebas committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    b911a00 View commit details
    Browse the repository at this point in the history
  4. Fix unsetting RenderLayers bit in without fn (bevyengine#2409)

    # Objective
    
    Fixes how the layer bit is unset in the RenderLayers bit mask when calling the `without` method.
    
    ## Solution
    
    Unsets the layer bit using `&=` and the inverse of the layer bit mask.
    andoco committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    941a8fb View commit details
    Browse the repository at this point in the history
  5. update duplicate dependency skip list (bevyengine#2415)

    # Objective
    
    - CI is failing because of new duplicate dependency: https://github.com/bevyengine/bevy/pull/2414/checks?check_run_id=2946566180
    
    ## Solution
    
    - update dependency duplicate skip list
    
    updated `hashbrown` dependency comes from:
    ```
        │   │   ├── bevy_macro_utils v0.5.0
        │   │   │   ├── cargo-manifest v0.2.4
        │   │   │   │   └── toml v0.5.8
        │   │   │   │       ├── indexmap v1.7.0
        │   │   │   │       │   └── hashbrown v0.11.2
    ```
    mockersf committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    69e888e View commit details
    Browse the repository at this point in the history
  6. use discord vanity link (bevyengine#2420)

    # Objective
    
    I wanted to send the Bevy discord link to someone but couldn't find a pretty link to copy paste 
    
    ## Solution
    
    Use the vanity link we have for discord
    mockersf committed Jul 1, 2021
    Configuration menu
    Copy the full SHA
    b52edc1 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2021

  1. Added Opensuse Tumbleweed (bevyengine#2375)

    # Objective
    
    - Describe the objective or issue this PR addresses.
    - added openSUSE Tumbleweed deps that i needed to install today 2021-06-22
    
    ## Solution
    
    - Describe the solution used to achieve the objective above.
    - added info to doc
    dintho committed Jul 5, 2021
    Configuration menu
    Copy the full SHA
    337e6d5 View commit details
    Browse the repository at this point in the history

Commits on Jul 6, 2021

  1. Fix AssetServer::get_asset_loader deadlock (bevyengine#2395)

    # Objective
    
    Fixes a possible deadlock between `AssetServer::get_asset_loader` / `AssetServer::add_loader`
    
    A thread could take the `extension_to_loader_index` read lock,
    and then have the `server.loader` write lock taken in add_loader
    before it can. Then add_loader can't take the extension_to_loader_index
    lock, and the program deadlocks.
    
    To be more precise:
    
    ## Step 1: Thread 1 grabs the `extension_to_loader_index` lock on lines 138..139:
    
    https://github.com/bevyengine/bevy/blob/3a1867a92edc571b8f842bb1a96112dcbdceae4b/crates/bevy_asset/src/asset_server.rs#L133-L145
    
    ## Step 2: Thread 2 grabs the `server.loader` write lock on line 107:
    
    https://github.com/bevyengine/bevy/blob/3a1867a92edc571b8f842bb1a96112dcbdceae4b/crates/bevy_asset/src/asset_server.rs#L103-L116
    
    ## Step 3: Deadlock, since Thread 1 wants to grab `server.loader` on line 141...:
    
    https://github.com/bevyengine/bevy/blob/3a1867a92edc571b8f842bb1a96112dcbdceae4b/crates/bevy_asset/src/asset_server.rs#L133-L145
    
    ... and Thread 2 wants to grab 'extension_to_loader_index` on lines 111..112:
    
    https://github.com/bevyengine/bevy/blob/3a1867a92edc571b8f842bb1a96112dcbdceae4b/crates/bevy_asset/src/asset_server.rs#L103-L116
    
    
    ## Solution
    
    Fixed by descoping the extension_to_loader_index lock, since
    `get_asset_loader` doesn't need to hold the read lock on the extensions map for the duration,
    just to get a copyable usize. The block might not be needed,
    I think I could have gotten away with just inserting a `copied()`
    call into the chain, but I wanted to make the reasoning clear for
    future maintainers.
    vgel committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    85a10ec View commit details
    Browse the repository at this point in the history
  2. Fix name in list of features (bevyengine#2438)

    # Objective
    
    - Fix the name of the `bevy_dynamic_plugin` feature in the list of features
    
    ## Solution
    
    - Remove the letter "s" 😶
    tsoutsman committed Jul 6, 2021
    Configuration menu
    Copy the full SHA
    bc3f80f View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2021

  1. Optional .system(), part 4 (run criteria) (bevyengine#2431)

    # Objective
    
    - Continue work of bevyengine#2398 and friends.
    - Make `.system()` optional in run criteria APIs.
    
    ## Solution
    
    - Slight change to `RunCriteriaDescriptorCoercion` signature and implementors.
    - Implement `IntoRunCriteria` for `IntoSystem` rather than `System`.
    - Remove some usages of `.system()` with run criteria in tests of `stage.rs`, to verify the implementation.
    Ratysz committed Jul 8, 2021
    Configuration menu
    Copy the full SHA
    11485de View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2021

  1. Configuration menu
    Copy the full SHA
    17bd3f9 View commit details
    Browse the repository at this point in the history

Commits on Jul 12, 2021

  1. Make Remove Command's fields public (bevyengine#2449)

    In bevyengine#2034, the `Remove` Command did not get the same treatment as the rest of the commands. There's no discussion saying it shouldn't have public fields, so I am assuming it was an oversight. This fixes that oversight.
    isHavvy committed Jul 12, 2021
    Configuration menu
    Copy the full SHA
    b48ee02 View commit details
    Browse the repository at this point in the history
  2. rename example change_detection to have unique name (bevyengine#2419)

    # Objective
    
    Noticed a warning when running tests:
    ```
    > cargo test --workspace
    warning: output filename collision.
    The example target `change_detection` in package `bevy_ecs v0.5.0 (/bevy/crates/bevy_ecs)` has the same output filename as the example target `change_detection` in package `bevy v0.5.0 (/bevy)`.
    Colliding filename is: /bevy/target/debug/examples/change_detection
    The targets should have unique names.
    Consider changing their names to be unique or compiling them separately.
    This may become a hard error in the future; see <rust-lang/cargo#6313>.
    warning: output filename collision.
    The example target `change_detection` in package `bevy_ecs v0.5.0 (/bevy/crates/bevy_ecs)` has the same output filename as the example target `change_detection` in package `bevy v0.5.0 (/bevy)`.
    Colliding filename is: /bevy/target/debug/examples/change_detection.dSYM
    The targets should have unique names.
    Consider changing their names to be unique or compiling them separately.
    This may become a hard error in the future; see <rust-lang/cargo#6313>.
    ```
    
    
    ## Solution
    
    I renamed example `change_detection` to `component_change_detection`
    mockersf committed Jul 12, 2021
    Configuration menu
    Copy the full SHA
    57c0215 View commit details
    Browse the repository at this point in the history
  3. docs: add hint that texture atlas padding is between tiles (bevyengin…

    …e#2447)
    
    I struggled with some sprite sheet animation which was like drifting from right to left.
    This PR documents the current behaviour that the padding which is used on slicing a texture into a texture atlas, is assumed to be only between tiles. In my case I had some padding also on the right side of the texture.
    payload committed Jul 12, 2021
    Configuration menu
    Copy the full SHA
    10b0b1a View commit details
    Browse the repository at this point in the history

Commits on Jul 13, 2021

  1. Configuration menu
    Copy the full SHA
    8c8bd3b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    71d5702 View commit details
    Browse the repository at this point in the history
  3. new labels: bug report

    cart authored Jul 13, 2021
    Configuration menu
    Copy the full SHA
    db50a8d View commit details
    Browse the repository at this point in the history
  4. Update docs_improvement.md

    cart authored Jul 13, 2021
    Configuration menu
    Copy the full SHA
    59042a9 View commit details
    Browse the repository at this point in the history
  5. new labels: feature request

    cart authored Jul 13, 2021
    Configuration menu
    Copy the full SHA
    927a257 View commit details
    Browse the repository at this point in the history
  6. add proc-macro-crate as a known duplicate (bevyengine#2456)

    # Objective
    
    - CI is failing because of a dependency (`num_enum`) that now uses the latest version of `proc-macro-crate`
    
    ```
        = proc-macro-crate v0.1.5
          ├── ndk-macro v0.2.0
          │   ├── ndk-glue v0.2.1
          │   │   ├── bevy_asset v0.5.0
          │   │   └── bevy_internal v0.5.0 (*)
          │   └── ndk-glue v0.3.0
          │       ├── cpal v0.13.3
          │       │   └── rodio v0.14.0
          │       │       └── bevy_audio v0.5.0 (*)
          │       ├── oboe v0.4.2
          │       │   └── cpal v0.13.3 (*)
          │       └── winit v0.25.0
          │           ├── bevy_winit v0.5.0 (*)
          │           └── bevy_winit v0.5.0 (*)
          └── num_enum_derive v0.4.3
              └── num_enum v0.4.3
                  └── ndk v0.2.1
                      └── ndk-glue v0.2.1 (*)
    
        = proc-macro-crate v1.0.0
          └── num_enum_derive v0.5.2
              └── num_enum v0.5.2
                  └── ndk v0.3.0
                      ├── cpal v0.13.3
                      │   └── rodio v0.14.0
                      │       └── bevy_audio v0.5.0
                      ├── ndk-glue v0.3.0
                      │   ├── cpal v0.13.3 (*)
                      │   ├── oboe v0.4.2
                      │   │   └── cpal v0.13.3 (*)
                      │   └── winit v0.25.0
                      │       ├── bevy_winit v0.5.0 (*)
                      │       └── bevy_winit v0.5.0 (*)
                      ├── oboe v0.4.2 (*)
                      └── winit v0.25.0 (*)
    ```
    
    ## Solution
    
    - Add `proc-macro-crate` as a known duplicate
    mockersf committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    38bc278 View commit details
    Browse the repository at this point in the history
  7. update archetypes for run criterias (bevyengine#2177)

    fixes bevyengine#2000 
    
    archetypes were not updated for run criteria on a stage or on a system set
    mockersf committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    5c4909d View commit details
    Browse the repository at this point in the history
  8. Bump gaurav-nelson/github-action-markdown-link-check from 1.0.12 to 1…

    ….0.13 (bevyengine#2452)
    
    Bumps [gaurav-nelson/github-action-markdown-link-check](https://github.com/gaurav-nelson/github-action-markdown-link-check) from 1.0.12 to 1.0.13.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/releases">gaurav-nelson/github-action-markdown-link-check's releases</a>.</em></p>
    <blockquote>
    <h2>1.0.13</h2>
    <p>Main changes:</p>
    <ul>
    <li>Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/111">#111</a> from gaurav-nelson/mlc@3.8.7 (9710f0f)</li>
    <li>Update to markdown-link-check version 3.8.7 (7a77bd1)</li>
    </ul>
    <p>Other minor updates:</p>
    <ul>
    <li>Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/107">#107</a> from petethepig/patch-1 (95ffb9c)</li>
    <li>Adds pyroscope to the list of happy users (2df45f2)</li>
    <li>Fixed usage examples (cc3343e)</li>
    <li>Buy me a coffee (24cd99c)</li>
    <li>Remove treeware badge (f0656de)</li>
    <li>Add netdata sample (2579500)</li>
    <li>Update README, fixed LICENSE (4d5a901)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/9710f0fec812ce0a3b98bef4c9d842fc1f39d976"><code>9710f0f</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/111">#111</a> from gaurav-nelson/mlc@3.8.7</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/7a77bd14ccf35078a808d92fde3e60d6947bb6a3"><code>7a77bd1</code></a> Update to markdown-link-check version 3.8.7</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/95ffb9cc0e73598e4c8b38ededb26fb209801877"><code>95ffb9c</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/gaurav-nelson/github-action-markdown-link-check/issues/107">#107</a> from petethepig/patch-1</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/2df45f2890f9438465e9b313d18f6913a9a45b16"><code>2df45f2</code></a> Adds pyroscope to the list of happy users</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/cc3343e7a61123601c28649138acb2bd10675a50"><code>cc3343e</code></a> Fixed usage examples</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/24cd99c2f875e0f98b66fcb6903b405664b15d58"><code>24cd99c</code></a> Buy me a coffee</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/f0656de48f62c1777d073db4a5816eba1dcc1364"><code>f0656de</code></a> Remove treeware badge</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/257950028759bd4cbd473022a6e60ca5363ae974"><code>2579500</code></a> Add netdata sample</li>
    <li><a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/commit/4d5a901466436052915a68d4a856171a50b2c762"><code>4d5a901</code></a> Update README, fixed LICENSE</li>
    <li>See full diff in <a href="https://github.com/gaurav-nelson/github-action-markdown-link-check/compare/0fe4911067fa322422f325b002d2038ba5602170...9710f0fec812ce0a3b98bef4c9d842fc1f39d976">compare view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gaurav-nelson/github-action-markdown-link-check&package-manager=github_actions&previous-version=1.0.12&new-version=1.0.13)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    
    
    </details>
    dependabot[bot] committed Jul 13, 2021
    Configuration menu
    Copy the full SHA
    98f5faf View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2021

  1. Add feature flag to enable wasm for bevy_audio (bevyengine#2397)

    Exposes Rodio feature flag to enable WASM support.
    
    Note that mp3 doesn't currently work on wasm.
    Ixentus committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    d80303d View commit details
    Browse the repository at this point in the history
  2. Remove unused deps (bevyengine#2455)

    # Objective
    
    Reduce compilation time
    
    # Solution
    
    Remove unused dependencies. While this PR doesn't remove any crates from `Cargo.lock`, it may unlock more build parallelism.
    bjorn3 committed Jul 14, 2021
    Configuration menu
    Copy the full SHA
    ebd1068 View commit details
    Browse the repository at this point in the history

Commits on Jul 15, 2021

  1. Update minimal version requirements for dependencies (bevyengine#2460)

    This was tested using cargo generate-lockfile -Zminimal-versions.
    The following indirect dependencies also have minimal version
    dependencies. For at least num, rustc-serialize and rand this is
    necessary to compile on rustc versions that are not older than 1.0.
    
    * num = "0.1.27"
    * rustc-serialize = "0.3.20"
    * termcolor = "1.0.4"
    * libudev-sys = "0.1.1"
    * rand = "0.3.14"
    * ab_glyph = "0.2.7
    
    Based on bevyengine#2455
    bjorn3 committed Jul 15, 2021
    Configuration menu
    Copy the full SHA
    fbf561c View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2021

  1. Don't update when suspended to avoid GPU use on iOS. (bevyengine#2482)

    # Objective
    
    This fixes a crash caused by iOS preventing GPU access when not focused: bevyengine#2296
    
    ## Solution
    
    This skips `app.update()` in `winit_runner` when `winit` sends the `Suspended` event, until `Resumed`.
    
    I've tested that this works for me on my iOS app.
    HackerFoo committed Jul 16, 2021
    Configuration menu
    Copy the full SHA
    927973c View commit details
    Browse the repository at this point in the history
  2. add check for unused dependencies (bevyengine#2461)

    # Objective
    
    - Unused dependencies are bad
    
    ## Solution
    
    - Add check for unused dependencies with https://github.com/est31/cargo-udeps - bevyengine#2455
    mockersf committed Jul 16, 2021
    Configuration menu
    Copy the full SHA
    de0d459 View commit details
    Browse the repository at this point in the history
  3. [ecs] Improve Commands performance (bevyengine#2332)

    # Objective
    
    - Currently `Commands` are quite slow due to the need to allocate for each command and wrap it in a `Box<dyn Command>`.
    - For example:
    ```rust
    fn my_system(mut cmds: Commands) {
        cmds.spawn().insert(42).insert(3.14);
    }
    ```
    will have 3 separate `Box<dyn Command>` that need to be allocated and ran.
    
    ## Solution
    
    - Utilize a specialized data structure keyed `CommandQueueInner`. 
    - The purpose of `CommandQueueInner` is to hold a collection of commands in contiguous memory. 
    - This allows us to store each `Command` type contiguously in memory and quickly iterate through them and apply the `Command::write` trait function to each element.
    NathanSWard committed Jul 16, 2021
    Configuration menu
    Copy the full SHA
    ecb7804 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2021

  1. Relicense bors checks (bevyengine#2493)

    # Objective
    
    Currently we can sometimes allow PRs by people who haven't agreed to the relicense to get merged into main.
    
    E.g. bevyengine#2445
    
    ## Solution
    
    This adds a check to ensure that this doesn't happen, by ensuring that bors doesn't relicense said PRs.
    
    As a bonus, it also adds config to automatically label new PRs as needing checking, to ensure that we do the verification until we merge the new license.
    DJMcNab committed Jul 17, 2021
    Configuration menu
    Copy the full SHA
    c9c322e View commit details
    Browse the repository at this point in the history
  2. Optional .system(), part 6 (chaining) (bevyengine#2494)

    # Objective
    
    - Continue work of bevyengine#2398 and friends.
    - Make `.system()` optional in chaining.
    
    ## Solution
    
    - Slight change to `IntoChainSystem` signature and implementation.
    - Remove some usages of `.system()` in the chaining example, to verify the implementation.
    
    ---
    
    I swear, I'm not splitting these up on purpose, I just legit forgot about most of the things where `System` appears in public API, and my trait usage explorer mingles that with the gajillion internal uses.
    
    In case you're wondering what happened to part 5, bevyengine#2446 ate it.
    Ratysz committed Jul 17, 2021
    Configuration menu
    Copy the full SHA
    f6dbc25 View commit details
    Browse the repository at this point in the history
  3. Useful changes with relicensing benefits (bevyengine#2497)

    This obsoletes bevyengine#1111 and bevyengine#2445, since @ColonisationCaptain and @temhotaokeaha haven't replied to bevyengine#2373.
    
    I believe that both of those PRs would be fine to keep, but they're even more fine to keep now :)
    DJMcNab committed Jul 17, 2021
    Configuration menu
    Copy the full SHA
    3a20462 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2021

  1. Revert bevyengine#331 (bevyengine#2502)

    # Objective
    
    @TomBebb (other account being @TomBebbington ) proved unreachable for bevyengine#2373, so we need to revert their changes for the relicense.
    
    ## Solution
    
    Revert their changes. This is only linux distro docs, so it's not critical code.
    
    If someone else wants to test `bevy` on solus to work out the set of packages independently, then we'll probably accept a PR to add these. One suggestsion would be to consider the packages required on other systems, since there is likely to be some overlap.
    
    ## Alternatives
    
    Link to this old version in the `linux_dependencies.md` file.
    DJMcNab committed Jul 19, 2021
    Configuration menu
    Copy the full SHA
    0aced5f View commit details
    Browse the repository at this point in the history

Commits on Jul 21, 2021

  1. Fix typo in QueryComponentError message (bevyengine#2498)

    There was a typo, I believe.
    Nilirad committed Jul 21, 2021
    Configuration menu
    Copy the full SHA
    0c62b28 View commit details
    Browse the repository at this point in the history
  2. disable bors check on android (bevyengine#2513)

    # Objective
    
    - CI is failing because of an android issue
    - This is blocking bors
    
    ## Solution
    
    - Bors can ignore android failures
    - Keep android job in CI to check its status
    
    I'm not android enough to debug this one, this is a temp fix until someone knows how to fix it or it get fixed by itself with updates?
    mockersf committed Jul 21, 2021
    Configuration menu
    Copy the full SHA
    2c28331 View commit details
    Browse the repository at this point in the history
  3. move get_insert_bundle_info (bevyengine#2508)

    I had to move this out in my relations PR and its causing a large diff so I figure I could just do this separately
    BoxyUwU committed Jul 21, 2021
    Configuration menu
    Copy the full SHA
    ba2916c View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2021

  1. Relicense Bevy under the dual MIT or Apache-2.0 license (bevyengine#2509

    )
    
    This relicenses Bevy under the dual MIT or Apache-2.0 license. For rationale, see bevyengine#2373.
    
    * Changes the LICENSE file to describe the dual license. Moved the MIT license to docs/LICENSE-MIT. Added the Apache-2.0 license to docs/LICENSE-APACHE. I opted for this approach over dumping both license files at the root (the more common approach) for a number of reasons:
      * Github links to the "first" license file (LICENSE-APACHE) in its license links (you can see this in the wgpu and rust-analyzer repos). People clicking these links might erroneously think that the apache license is the only option. Rust and Amethyst both use COPYRIGHT or COPYING files to solve this problem, but this creates more file noise (if you do everything at the root) and the naming feels way less intuitive. 
      * People have a reflex to look for a LICENSE file. By providing a single license file at the root, we make it easy for them to understand our licensing approach. 
      * I like keeping the root clean and noise free
      * There is precedent for putting the apache and mit license text in sub folders (amethyst) 
    * Removed the `Copyright (c) 2020 Carter Anderson` copyright notice from the MIT license. I don't care about this attribution, it might make license compliance more difficult in some cases, and it didn't properly attribute other contributors. We shoudn't replace it with something like "Copyright (c) 2021 Bevy Contributors" because "Bevy Contributors" is not a legal entity. Instead, we just won't include the copyright line (which has precedent ... Rust also uses this approach).
    * Updates crates to use the new "MIT OR Apache-2.0" license value
    * Removes the old legion-transform license file from bevy_transform. bevy_transform has been its own, fully custom implementation for a long time and that license no longer applies.
    * Added a License section to the main readme
    * Updated our Bevy Plugin licensing guidelines.
    
    As a follow-up we should update the website to properly describe the new license.
    
    Closes bevyengine#2373
    cart committed Jul 23, 2021
    Configuration menu
    Copy the full SHA
    e167a1d View commit details
    Browse the repository at this point in the history

Commits on Jul 24, 2021

  1. fix version of notify to 5.0.0-pre.2 (bevyengine#2528)

    # Objective
    
    - https://github.com/notify-rs/notify changed their api in the latest pre-release of 0.5.0
    - This breaks current main AND v0.5.0
    
    ## Solution
    
    - Fix the dependency to the known working version
    
    before : https://docs.rs/notify/5.0.0-pre.2/notify/trait.Watcher.html
    after : https://docs.rs/notify/5.0.0-pre.11/notify/trait.Watcher.html
    mockersf committed Jul 24, 2021
    Configuration menu
    Copy the full SHA
    a4e5e27 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2021

  1. Android uninstall 31 (bevyengine#2533)

    # Objective
    
    - Related to bevyengine#2514 - not sure if it's a proper fix long term
    - CI was complaining Error: Path `"/usr/local/lib/android/sdk/ndk-bundle/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android31-clang"` was not found
    - A lot of questions started popping up 10 days ago about ["android build tools 31 corrupted"](https://www.google.com/search?q=android+build+tools+31+corrupted)
      - https://stackoverflow.com/questions/68387270/android-studio-error-installed-build-tools-revision-31-0-0-is-corrupted
    - Uninstalling `"build-tools;31.0.0"` doesn't seem to work, as it removes other components even though `"build-tools;30.0.3"` are available
    
    
    ## Solution
    
    - Uninstalling `"platforms;android-31"` seems to do the trick and `cargo-apk` stops trying to target `...31`
    
    Android is not my thing, this solution was found with a lot of trials and errors. I am not sure how long term it is, I don't know the release schedule of android build tools, or if we need to target this 31 thing. I just wanted to stop all those failed ci everywhere...
    mockersf committed Jul 26, 2021
    Configuration menu
    Copy the full SHA
    5583f9a View commit details
    Browse the repository at this point in the history

Commits on Jul 27, 2021

  1. Ci stability and speed improvements (bevyengine#2551)

    # Objective
    
    - There are a few random failures in CI, mostly due to contacting crates.io or checking for deadlinks
    - CI can take some time, more than 20 minutes for a full status
    - A clippy/format issue stops running tests on other platforms
    
    
    ## Solution
    
    - Use GitHub cache for cargo artefacts
      - This speeds up builds and reduce dependencies on outside world
    - Reorder and add dependencies between short jobs. They are still setup to run even if one of the dependency failed
      - This reduce the number of parallel jobs that are running for one PR. On GitHub free tier, we're limited to 20.
    - Split CI checks (format & clippy) in its own job
      - This speeds up test jobs, and allow us to not kill all platform tests for a format issue
    - Retry in case of dead links check failure
      - Internet is just that kind of place where things may seem dead at some point but back alive 5 seconds later
    
    ## Before
    
    <img width="1062" alt="Screenshot 2021-07-27 at 01 18 52" src="https://user-images.githubusercontent.com/8672791/127071973-9a2c5ce8-c871-4f8d-9b17-08871824b6c4.png">
    
    ## After (with all cache live)
    
    <img width="1063" alt="Screenshot 2021-07-27 at 01 18 28" src="https://user-images.githubusercontent.com/8672791/127071986-767a7e65-53ed-45fd-8d75-51a571f0b851.png">
    mockersf committed Jul 27, 2021
    Configuration menu
    Copy the full SHA
    d3ae816 View commit details
    Browse the repository at this point in the history
  2. Dedupe move logic in remove_bundle and remove_bundle_intersection (be…

    …vyengine#2521)
    
    This logic was in both `remove_bundle` and ` remove_bundle_intersection` but only differed by whether we call `.._forget_missing_..` or `.._drop_missing_..`
    BoxyUwU committed Jul 27, 2021
    Configuration menu
    Copy the full SHA
    c83a184 View commit details
    Browse the repository at this point in the history
  3. Merge AppBuilder into App (bevyengine#2531)

    This is extracted out of eb8f973 and includes some additional changes to remove all references to AppBuilder and fix examples that still used App::build() instead of App::new(). In addition I didn't extract the sub app feature as it isn't ready yet.
    
    You can use `git diff --diff-filter=M eb8f973` to find all differences in this PR. The `--diff-filtered=M` filters all files added in the original commit but not in this commit away.
    
    Co-Authored-By: Carter Anderson <mcanders1@gmail.com>
    bjorn3 and cart committed Jul 27, 2021
    Configuration menu
    Copy the full SHA
    6d6bc2a View commit details
    Browse the repository at this point in the history
  4. Inline world get (bevyengine#2520)

    # Objective
    
    While looking at the code of `World`, I noticed two basic functions (`get` and `get_mut`) that are probably called a lot and with simple code that are not `inline`
    
    ## Solution
    
    - Add benchmark to check impact
    - Add `#[inline]`
    
    
    ```
    group                                            this pr                                main
    -----                                            ----                                   ----
    world_entity/50000_entities                      1.00   115.9±11.90µs        ? ?/sec    1.71   198.5±29.54µs        ? ?/sec
    world_get/50000_entities_SparseSet               1.00   409.9±46.96µs        ? ?/sec    1.18   483.5±36.41µs        ? ?/sec
    world_get/50000_entities_Table                   1.00   391.3±29.83µs        ? ?/sec    1.16   455.6±57.85µs        ? ?/sec
    world_query_for_each/50000_entities_SparseSet    1.02   121.3±18.36µs        ? ?/sec    1.00   119.4±13.88µs        ? ?/sec
    world_query_for_each/50000_entities_Table        1.03     13.8±0.96µs        ? ?/sec    1.00     13.3±0.54µs        ? ?/sec
    world_query_get/50000_entities_SparseSet         1.00   666.9±54.36µs        ? ?/sec    1.03   687.1±57.77µs        ? ?/sec
    world_query_get/50000_entities_Table             1.01   584.4±55.12µs        ? ?/sec    1.00   576.3±36.13µs        ? ?/sec
    world_query_iter/50000_entities_SparseSet        1.01   169.7±19.50µs        ? ?/sec    1.00   168.6±32.56µs        ? ?/sec
    world_query_iter/50000_entities_Table            1.00     26.2±1.38µs        ? ?/sec    1.91     50.0±4.40µs        ? ?/sec
    ```
    
    I didn't add benchmarks for the mutable path but I don't see how it could hurt to make it inline too...
    mockersf committed Jul 27, 2021
    Configuration menu
    Copy the full SHA
    234b2ef View commit details
    Browse the repository at this point in the history
  5. Down with the system! (bevyengine#2496)

    # Objective
    
    - Remove all the `.system()` possible.
    - Check for remaining missing cases.
    
    ## Solution
    
    - Remove all `.system()`, fix compile errors
    - 32 calls to `.system()` remains, mostly internals, the few others should be removed after bevyengine#2446
    mockersf committed Jul 27, 2021
    Configuration menu
    Copy the full SHA
    b724a0f View commit details
    Browse the repository at this point in the history

Commits on Jul 28, 2021

  1. Remove empty module (bevyengine#2558)

    self explanatory
    BoxyUwU committed Jul 28, 2021
    Configuration menu
    Copy the full SHA
    4b6238d View commit details
    Browse the repository at this point in the history
  2. Refactor ECS to reduce the dependency on a 1-to-1 mapping between com…

    …ponents and real rust types (bevyengine#2490)
    
    # Objective
    
    There is currently a 1-to-1 mapping between components and real rust types. This means that it is impossible for multiple components to be represented by the same rust type or for a component to not have a rust type at all. This means that component types can't be defined in languages other than rust like necessary for scripting or sandboxed (wasm?) plugins.
    
    ## Solution
    
    Refactor `ComponentDescriptor` and `Bundle` to remove `TypeInfo`. `Bundle` now uses `ComponentId` instead. `ComponentDescriptor` is now always created from a rust type instead of through the `TypeInfo` indirection. A future PR may make it possible to construct a `ComponentDescriptor` from it's fields without a rust type being involved.
    bjorn3 committed Jul 28, 2021
    Configuration menu
    Copy the full SHA
    86cc70b View commit details
    Browse the repository at this point in the history

Commits on Jul 29, 2021

  1. Configuration menu
    Copy the full SHA
    5ffff03 View commit details
    Browse the repository at this point in the history
  2. Add 's (state) lifetime to Fetch (bevyengine#2515)

    Allows iterators to return things that borrow data from `QueryState`, needed this in my relations PR figure might be worth landing separately maybe
    BoxyUwU committed Jul 29, 2021
    Configuration menu
    Copy the full SHA
    155068a View commit details
    Browse the repository at this point in the history
  3. Bump notify to 5.0.0-pre.11 (bevyengine#2564)

    # Objective
    
    notify 5.0.0-pre.11 breaks the interface again, but apparently in a way that's similar to how it used to be
    
    ## Solution
    
    Bump `bevy_asset` dependency on notify to `5.0.0-pre.11` and fix the errors that crop up.
    
    It looks like `pre.11` was mentioned in bevyengine#2528 by @mockersf but there's no mention of why `pre.10` was chosen ultimately.
    deontologician committed Jul 29, 2021
    Configuration menu
    Copy the full SHA
    54ff7aa View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2021

  1. Remove bevy_dynamic_plugin as a default (bevyengine#2578)

    It doesn't compile on wasm, and it's full of footguns
    
    # Objective
    
    - If bevy is used with default features on wasm, there's more of a chance it will compile
    - Note that I haven't done a full audit - it's possible that there are other problematic crates
    
    ## Solution
    
    - `bevy_dynamic_plugin` is no longer a default plugin
    - I've also done an accidental drive by reformatting of the root `Cargo.toml`, as I have [Even Better Toml](https://github.com/tamasfe/taplo) installed.
    - (Please, rustfmt do this for us)
    DJMcNab committed Aug 1, 2021
    Configuration menu
    Copy the full SHA
    43d99bb View commit details
    Browse the repository at this point in the history

Commits on Aug 6, 2021

  1. fix typo (paramater to parameter) (bevyengine#2590)

    there was a typo 👀 i fixed it 👀
    Protowalker committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    03e2045 View commit details
    Browse the repository at this point in the history
  2. Add "ci" job to the bors.toml (bevyengine#2612)

    # Objective
    
    - bevyengine#2551 revamped our CI setup which included running clippy and rustfmt in another Job.
    - This new Job wasn't added to the bors.toml, which means that PRs would be accepted that didn't run them.
    
    ## Solution
    
    - Add the "ci" job to the bors.toml
    MinerSebas committed Aug 6, 2021
    Configuration menu
    Copy the full SHA
    90586a4 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2021

  1. Update EntityMut's location in push_children() and insert_children() (b…

    …evyengine#2604)
    
    ## Objective
    
    This code would result in a crash:
    ```rust
    use bevy::prelude::*;
    
    fn main() {
        let mut world = World::new();
        let child = world.spawn().id();
        world.spawn().push_children(&[child]);
    }
    ```
    
    ## Solution
    
    Update the `EntityMut`'s location after inserting a component on the children entities, as it may have changed.
    Davier committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    336583a View commit details
    Browse the repository at this point in the history
  2. Remove with bundle filter (bevyengine#2623)

    # Objective
    
    Fixes bevyengine#2620
    
    ## Solution
    
    Remove WithBundle filter and temporarily remove example for query_bundle.
    Hoidigan committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    49038d0 View commit details
    Browse the repository at this point in the history
  3. Change definition of ScheduleRunnerPlugin (bevyengine#2606)

    # Objective
    
    - Allow `ScheduleRunnerPlugin` to be instantiated without curly braces. Other plugins in the library already use the semicolon syntax.
    - Currently, you have to do the following:
    ```rust
    App::build()
        .add_plugin(bevy::core::CorePlugin)
        .add_plugin(bevy::app::ScheduleRunnerPlugin {})
    ```
    - With the proposed change you can do this:
    ```rust
    App::build()
        .add_plugin(bevy::core::CorePlugin)
        .add_plugin(bevy::app::ScheduleRunnerPlugin)
    ```
    
    ## Solution
    
    - Change the `ScheduleRunnerPlugin` definition to use a semicolon instead of curly braces.
    tsoutsman committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    0c91317 View commit details
    Browse the repository at this point in the history
  4. Link Minimal and Default plugins in the docs. (bevyengine#2583)

    I didn't know about MinimalPlugins for way too long. This should increase visibility for others.
    
    # Objective
    
    Improve visibility and discover in the docs for Default and Minimal Plugins.
    
    ## Solution
    
    Links the two Docs pages. 
    
    
    
    Co-authored-by: Mirko Rainer <52899592+mirkoRainer@users.noreply.github.com>
    mirkoRainer and mirkoRainer committed Aug 10, 2021
    Configuration menu
    Copy the full SHA
    a023b68 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2021

  1. fix missing paths in ECS SystemParam derive macro v2 (bevyengine#2550)

    This is an updated version of bevyengine#1434 PR. I've encountered this macro problem while trying to use @woubuc's bevy-event-set crate.
    
    Co-authored-by: Piotr Balcer <piotr@balcer.eu>
    pbalcer and pbalcer committed Aug 11, 2021
    Configuration menu
    Copy the full SHA
    b13472d View commit details
    Browse the repository at this point in the history

Commits on Aug 13, 2021

  1. Small script fix (bevyengine#2591)

    # Objective
    Prevent some possible problem
    Found by IntelliJ IDEA
    
    ## Solution
    
    Double quoting variable and exit on possible failure of cd command.
    Rémi Lauzier committed Aug 13, 2021
    Configuration menu
    Copy the full SHA
    fafee88 View commit details
    Browse the repository at this point in the history
  2. Better error message for unsupported shader features Fixes bevyengine…

    …#869 (bevyengine#2598)
    
    # Objective
    
    - Provides more useful error messages when using unsupported shader features.
    
    ## Solution Fixes bevyengine#869
    
    - Provided a error message as follows (adding name, set and binding): 
    ```
    Unsupported shader bind type CombinedImageSampler (name noiseVol0, set 0, binding 9)
    ```
    myisaak committed Aug 13, 2021
    Configuration menu
    Copy the full SHA
    5eeba15 View commit details
    Browse the repository at this point in the history
  3. Cleanup FromResources (bevyengine#2601)

    ## Objective
    
    - Clean up remaining references to the trait `FromResources`, which was replaced in favor of `FromWorld` during the ECS rework.
    
    ## Solution
    
    - Remove the derive macro for `FromResources`
    - Change doc references of `FromResources` to `FromWorld`
    
    (this is the first item in bevyengine#2576)
    Davier committed Aug 13, 2021
    Configuration menu
    Copy the full SHA
    6aedb25 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2021

  1. Implement Clone for Fetches (bevyengine#2641)

    # Objective
    
    This:
    
    ```rust
    use bevy::prelude::*;
    
    fn main() {
        App::new()
        .add_system(test)
        .run();
    }
    
    fn test(entities: Query<Entity>) {
        let mut combinations = entities.iter_combinations_mut();
        while let Some([e1, e2]) = combinations.fetch_next() {    
            dbg!(e1);
        }
    }
    ```
    
    fails with the message "the trait bound `bevy::ecs::query::EntityFetch: std::clone::Clone` is not satisfied". 
    
    
    ## Solution
    
    It works after adding the naive clone implementation to EntityFetch. I'm not super familiar with ECS internals, so I'd appreciate input on this.
    msvbg committed Aug 14, 2021
    Configuration menu
    Copy the full SHA
    96f0e02 View commit details
    Browse the repository at this point in the history
  2. Comprehensive CONTRIBUTING.md (bevyengine#2040)

    [**RENDERED**](https://github.com/alice-i-cecile/bevy/blob/better-contributing/CONTRIBUTING.md)
    
    Improves bevyengine#910. As discussed in bevyengine#1309, we'll need to synchronize content between this and the Bevy website in some way (and clean up the .github file perhaps?).
    
    I think doing it as a root-directory file is nicer for discovery, but that's a conversation I'm interested in having.
    
    This document is intended to be helpful to beginners to open source and Bevy, and captures what I've learned about our informal practices and values.
    
    Reviewers: I'm particularly interested in:
    - opinions on the items **What we're trying to build**, where I discuss some of the project's high-level values and goals
    - more relevant details on the `bevy` subcrates for **Getting oriented**
    - useful tricks and best practices that I missed
    - better guidance on how to contribute to the Bevy book from @cart <3
    alice-i-cecile committed Aug 14, 2021
    Configuration menu
    Copy the full SHA
    d59fc07 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2021

  1. Not me ... us (bevyengine#2654)

    I don't see much of a reason at this point to boost my name over anyone elses. We are all Bevy Contributors.
    cart committed Aug 15, 2021
    Configuration menu
    Copy the full SHA
    a89a954 View commit details
    Browse the repository at this point in the history
  2. System Param Lifetime Split (bevyengine#2605)

    # Objective
    
    Enable using exact World lifetimes during read-only access . This is motivated by the new renderer's need to allow read-only world-only queries to outlive the query itself (but still be constrained by the world lifetime).
    
    For example:
    https://github.com/bevyengine/bevy/blob/115b170d1f11a91146bb6d6e9684dceb8b21f786/pipelined/bevy_pbr2/src/render/mod.rs#L774
    
    ## Solution
    
    Split out SystemParam state and world lifetimes and pipe those lifetimes up to read-only Query ops (and add into_inner for Res). According to every safety test I've run so far (except one), this is safe (see the temporary safety test commit). Note that changing the mutable variants to the new lifetimes would allow aliased mutable pointers (try doing that to see how it affects the temporary safety tests).
    
    The new state lifetime on SystemParam does make `#[derive(SystemParam)]` more cumbersome (the current impl requires PhantomData if you don't use both lifetimes). We can make this better by detecting whether or not a lifetime is used in the derive and adjusting accordingly, but that should probably be done in its own pr.  
    
    ## Why is this a draft?
    
    The new lifetimes break QuerySet safety in one very specific case (see the query_set system in system_safety_test). We need to solve this before we can use the lifetimes given.
    
    This is due to the fact that QuerySet is just a wrapper over Query, which now relies on world lifetimes instead of `&self` lifetimes to prevent aliasing (but in systems, each Query has its own implied lifetime, not a centralized world lifetime).  I believe the fix is to rewrite QuerySet to have its own World lifetime (and own the internal reference). This will complicate the impl a bit, but I think it is doable. I'm curious if anyone else has better ideas.
    
    Personally, I think these new lifetimes need to happen. We've gotta have a way to directly tie read-only World queries to the World lifetime. The new renderer is the first place this has come up, but I doubt it will be the last. Worst case scenario we can come up with a second `WorldLifetimeQuery<Q, F = ()>` parameter to enable these read-only scenarios, but I'd rather not add another type to the type zoo.
    cart committed Aug 15, 2021
    Configuration menu
    Copy the full SHA
    9d45353 View commit details
    Browse the repository at this point in the history

Commits on Aug 18, 2021

  1. feat: remove_component for ReflectComponent (bevyengine#2682)

    # Objective
    
    While implementing a plugin for my rollback networking library, I needed to load/save parts of the world. For this, I made a WorldSnapshot that works quite like the current DynamicScene. Using a TypeRegistry to register component types I want to save/load and then using ReflectComponents methods to add or apply components of the given types. 
    
    However, I noticed there is no method to remove components from entities through the ReflectComponent.
    
    ## Solution
    
    I added a `remove_component` field to the `ReflectComponent` struct, as well as a `pub fn remove_component(&self, world: &mut World, entity: Entity)` to call that function in `remove_component`. This follows exactly the same pattern all other methods/fields in this struct look like.
    
    This is an example how it could be used (at least how I would use it):
    https://github.com/gschup/bevy_ggrs/blob/6c003f86f1993bcbb21c180fab2e8ef664b7f7c9/src/world_snapshot.rs#L133
    gschup committed Aug 18, 2021
    Configuration menu
    Copy the full SHA
    98a08cf View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2021

  1. update ndk-glue to 0.4 (bevyengine#2684)

    # Objective
    
    - We currently depends on ndk 0.2, 0.3, 0.4
    - Only 0.2 dependencies comes from Bevy itself
    
    ## Solution
    
    - Replace bevyengine#1371 
    - Update Bevy to ndk-glue 0.4
    - Also fixes duplicate dependency CI issue
    mockersf committed Aug 19, 2021
    Configuration menu
    Copy the full SHA
    1a758dd View commit details
    Browse the repository at this point in the history
  2. Update glam requirement from 0.15.1 to 0.17.3 (bevyengine#2500)

    Updates the requirements on [glam](https://github.com/bitshifter/glam-rs) to permit the latest version.
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a href="https://github.com/bitshifter/glam-rs/blob/master/CHANGELOG.md">glam's changelog</a>.</em></p>
    <blockquote>
    <h2>[0.17.3] - 2021-07-18</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix alignment unit tests on non x86 platforms.</li>
    </ul>
    <h2>[0.17.2] - 2021-07-15</h2>
    <h3>Fixed</h3>
    <ul>
    <li>Fix alignment unit tests on i686 and S390x.</li>
    </ul>
    <h2>[0.17.1] - 2021-06-29</h2>
    <h3>Added</h3>
    <ul>
    <li>Added <code>serde</code> support for <code>Affine2</code>, <code>DAffine2</code>, <code>Affine3A</code> and <code>DAffine3</code>.</li>
    </ul>
    <h2>[0.17.0] - 2021-06-26</h2>
    <h3>Breaking changes</h3>
    <ul>
    <li>The addition of <code>Add</code> and <code>Sub</code> implementations of scalar values for vector
    types may create ambiguities with existing calls to <code>add</code> and <code>sub</code>.</li>
    <li>Removed <code>From&lt;Mat3&gt;</code> implementation for <code>Mat2</code> and <code>From&lt;DMat3&gt;</code> for <code>DMat2</code>.
    These have been replaced by <code>Mat2::from_mat3()</code> and <code>DMat2::from_mat3()</code>.</li>
    <li>Removed <code>From&lt;Mat4&gt;</code> implementation for <code>Mat3</code> and <code>From&lt;DMat4&gt;</code> for <code>DMat3</code>.
    These have been replaced by <code>Mat3::from_mat4()</code> and <code>DMat3::from_mat4()</code>.</li>
    <li>Removed deprecated <code>from_slice_unaligned()</code>, <code>write_to_slice_unaligned()</code>,
    <code>from_rotation_mat4</code> and <code>from_rotation_ypr()</code> methods.</li>
    </ul>
    <h3>Added</h3>
    <ul>
    <li>Added <code>col_mut()</code> method which returns a mutable reference to a matrix column
    to all matrix types.</li>
    <li>Added <code>AddAssign</code>, <code>MulAssign</code> and <code>SubAssign</code> implementations for all matrix
    types.</li>
    <li>Added <code>Add</code> and <code>Sub</code> implementations of scalar values for vector types.</li>
    <li>Added more <code>glam_assert!</code> checks and documented methods where they are used.</li>
    <li>Added vector projection and rejection methods <code>project_onto()</code>,
    <code>project_onto_normalized()</code>, <code>reject_from()</code> and <code>reject_from_normalized()</code>.</li>
    <li>Added <code>Mat2::from_mat3()</code>, <code>DMat2::from_mat3()</code>, <code>Mat3::from_mat4()</code>,
    <code>DMat3::from_mat4()</code> which create a smaller matrix from a larger one,
    discarding a final row and column of the input matrix.</li>
    <li>Added <code>Mat3::from_mat2()</code>, <code>DMat3::from_mat2()</code>, <code>Mat4::from_mat3()</code> and
    <code>DMat4::from_mat3()</code> which create an affine transform from a smaller linear
    transform matrix.</li>
    </ul>
    <h3>Changed</h3>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/ecf3904b2fb639a979127f457b259f4b83b0340b"><code>ecf3904</code></a> Prepare release 0.17.3</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/95e02bb43eadbc0c56b3931cbbf1f68a5cc5f910"><code>95e02bb</code></a> Merge branch 'master' of github.com:bitshifter/glam-rs</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/c6dc70258345349de5f1051d19ce1f408532ca89"><code>c6dc702</code></a> More alignment test fixes for when SSE2 is not avaialable.</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/87a3b25872f893fc4e8cbab0bbfbb437d1a2c8fb"><code>87a3b25</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bitshifter/glam-rs/issues/216">#216</a> from bitshifter/prepare-0.17.2</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/269e5140903f9bf5bcaa8073274f4a0113d7e0cd"><code>269e514</code></a> Prepare for 0.17.2 release.</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/1da7d6459c5f9890275c7fc1871e6c33c825b6b9"><code>1da7d64</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bitshifter/glam-rs/issues/215">#215</a> from bitshifter/issue-213</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/dc60e20925254f4f1239424685c34953409395df"><code>dc60e20</code></a> Fix align asserts on i686 and S390x architectures.</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/bd8b30e9fbcfd5910dc2af251fecccc31670edf7"><code>bd8b30e</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/bitshifter/glam-rs/issues/212">#212</a> from remilauzier/master</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/a4e97c0b5429547718a9ceacfe5957d1d765bd52"><code>a4e97c0</code></a> Update approx to 0.5</li>
    <li><a href="https://github.com/bitshifter/glam-rs/commit/059f61952533af3fc32274e5b7ea242ce9a771a7"><code>059f619</code></a> Prepare 0.17.1 release (<a href="https://github-redirect.dependabot.com/bitshifter/glam-rs/issues/211">#211</a>)</li>
    <li>Additional commits viewable in <a href="https://github.com/bitshifter/glam-rs/compare/0.15.1...0.17.3">compare view</a></li>
    </ul>
    </details>
    <br />
    
    
    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
    - `@dependabot merge` will merge this PR after your CI passes on it
    - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
    - `@dependabot cancel merge` will cancel a previously requested merge and block automerging
    - `@dependabot reopen` will reopen this PR if it is closed
    - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    
    
    </details>
    dependabot[bot] committed Aug 19, 2021
    Configuration menu
    Copy the full SHA
    9788b38 View commit details
    Browse the repository at this point in the history
  3. Reduce visibility of various types and fields (bevyengine#2690)

    See the individual commits.
    bjorn3 committed Aug 19, 2021
    Configuration menu
    Copy the full SHA
    d84c7f9 View commit details
    Browse the repository at this point in the history
  4. Update plugin guidelines (bevyengine#2692)

    # Objective
    
    - the plugin guidelines should be up-to-date and easy to read/understand
    
    ## Solution
    
    * point to "Bevy Assets" instead of old "Awesome Bevy"
    * restructure sections
    * same order for sections and checklist
    * Update examples with newest release/rev
    NiklasEi committed Aug 19, 2021
    Configuration menu
    Copy the full SHA
    62e4e59 View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2021

  1. derive Debug, Clone for FixedState (StableAHash) (bevyengine#2694)

    This matches `ahash::RandomState`, which provides both `Debug` and `Clone`.
    
    Notably, implementing `Clone` allows the `StableHashMap`/`Set` to also implement `Clone`.
    
    # Objective
    
    - Allow `bevy_utils::StableHashMap` to be cloned.
    
    ## Solution
    
    - Derive `Clone` for `bevy_utils::FixedState`.
    - Also derive `Debug`, since we're touching it anyway, and this aligns `FixedState` with `ahash::RandomState`.
    CAD97 committed Aug 24, 2021
    Configuration menu
    Copy the full SHA
    481fa3c View commit details
    Browse the repository at this point in the history
  2. Use Explicit Names for Flex Direction (bevyengine#2672)

    # Objective
    
    - Clarify vague meaning of "Ltr" and "Rtl". For someone familiar with Flex Box, this is easy to understand, but being more explicit will help beginners or those unfamiliar, without the need to do research.
    
    ## Solution
    
    - Change three letter abbreviation to fully descriptive name.
    mirkoRainer committed Aug 24, 2021
    Configuration menu
    Copy the full SHA
    958f8b1 View commit details
    Browse the repository at this point in the history
  3. Implement IntoSystemDescriptor for SystemDescriptor (bevyengine#2718)

    # Objective
    
    - Fixes  bevyengine#2716
    
    ## Solution
    
    - Implements the the IntoSystemDescriptor trait for SystemDescriptor, which simply returns itself
    GarettCooper committed Aug 24, 2021
    Configuration menu
    Copy the full SHA
    47ccebf View commit details
    Browse the repository at this point in the history
  4. Document collide args (bevyengine#2721)

    Fixes bevyengine#2720 (comment)
    
    Possibly we should omit the extra bit in brackets, not sure if its warranted.
    rukai committed Aug 24, 2021
    Configuration menu
    Copy the full SHA
    c5717b5 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2021

  1. Spawn specific entities: spawn or insert operations, refactor spawn i…

    …nternals, world clearing (bevyengine#2673)
    
    This upstreams the code changes used by the new renderer to enable cross-app Entity reuse:
    
    * Spawning at specific entities
    * get_or_spawn: spawns an entity if it doesn't already exist and returns an EntityMut
    * insert_or_spawn_batch: the batched equivalent to `world.get_or_spawn(entity).insert_bundle(bundle)`
    * Clearing entities and storages
    * Allocating Entities with "invalid" archetypes. These entities cannot be queried / are treated as "non existent". They serve as "reserved" entities that won't show up when calling `spawn()`. They must be "specifically spawned at" using apis like `get_or_spawn(entity)`.
    
    In combination, these changes enable the "render world" to clear entities / storages each frame and reserve all "app world entities". These can then be spawned during the "render extract step".
    
    This refactors "spawn" and "insert" code in a way that I think is a massive improvement to legibility and re-usability. It also yields marginal performance wins by reducing some duplicate lookups (less than a percentage point improvement on insertion benchmarks). There is also some potential for future unsafe reduction (by making BatchSpawner and BatchInserter generic). But for now I want to cut down generic usage to a minimum to encourage smaller binaries and faster compiles.
    
    This is currently a draft because it needs more tests (although this code has already had some real-world testing on my custom-shaders branch). 
    
    I also fixed the benchmarks (which currently don't compile!) / added new ones to illustrate batching wins.
    
    After these changes, Bevy ECS is basically ready to accommodate the new renderer. I think the biggest missing piece at this point is "sub apps".
    cart committed Aug 25, 2021
    Configuration menu
    Copy the full SHA
    b47217b View commit details
    Browse the repository at this point in the history
  2. Document QueryState (bevyengine#2298)

    # Objective
    
    - QueryState is lacking documentation.
    
    Fixes bevyengine#2090 
    
    ## Solution
    
    - Provide documentation that mirrors Query (as suggested in bevyengine#2090) and modify as needed.
    
    
    Co-authored-by: James Leflang <59455417+jleflang@users.noreply.github.com>
    jleflang and jleflang committed Aug 25, 2021
    Configuration menu
    Copy the full SHA
    f38a6e6 View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2021

  1. check that benches build (bevyengine#2675)

    # Objective
    
    - Fixes bevyengine#2674 
    - Check that benches build
    
    ## Solution
    
    - Adds a job that runs `cargo check --benches`
    
    
    Co-authored-by: Carter Anderson <mcanders1@gmail.com>
    mockersf and cart committed Aug 26, 2021
    Configuration menu
    Copy the full SHA
    f6b42b8 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2021

  1. Changed Zshare-generics to n on Windows (bevyengine#2016)

    It seems like this option needs to be off on Windows: bevyengine/bevy-website#131
    
    This change also simplifies the instructions required for the Fast Compiles section of the book: bevyengine/bevy-website#137
    lukors committed Aug 30, 2021
    Configuration menu
    Copy the full SHA
    4465583 View commit details
    Browse the repository at this point in the history
  2. Add aarch64-apple-darwin to the config_fast_builds for Apple Silicon (b…

    …evyengine#2739)
    
    # Objective
    
    M1 Macs / Apple Silicon / simply aarch64 needs to be specified for it to compile with zld, so users might be surprised to find that they aren't getting the benefits and see the fast compiles they might be seeing on other platforms.
    
    ## Solution
    
    - Add it? :)
    joshuataylor committed Aug 30, 2021
    Configuration menu
    Copy the full SHA
    d4a552a View commit details
    Browse the repository at this point in the history
  3. Derive thiserror::Error for HexColorError (bevyengine#2740)

    # Objective
    
    - Make it easy to use HexColorError with `thiserror`, i.e. converting it into other error types.
    
    Makes this possible:
    
    ```rust
    #[derive(Debug, thiserror::Error)]
    pub enum LdtkError {
        #[error("An error occured while deserializing")]
        Json(#[from] serde_json::Error),
        #[error("An error occured while parsing a color")]
        HexColor(#[from] bevy::render::color::HexColorError),
    }
    ```
    
    ## Solution
    
    - Derive thiserror::Error the same way we do elsewhere (see query.rs for instance)
    johanhelsing committed Aug 30, 2021
    Configuration menu
    Copy the full SHA
    dea292d View commit details
    Browse the repository at this point in the history

Commits on Aug 31, 2021

  1. Fix conflicts

    = committed Aug 31, 2021
    Configuration menu
    Copy the full SHA
    49ac4c7 View commit details
    Browse the repository at this point in the history
  2. some final fixes

    = committed Aug 31, 2021
    Configuration menu
    Copy the full SHA
    3352835 View commit details
    Browse the repository at this point in the history
  3. more "final" fixes

    = committed Aug 31, 2021
    Configuration menu
    Copy the full SHA
    822ff0d View commit details
    Browse the repository at this point in the history
  4. all the fixes

    = committed Aug 31, 2021
    Configuration menu
    Copy the full SHA
    d4ac8fd View commit details
    Browse the repository at this point in the history