Skip to content

Commit

Permalink
Version 2.0.0-dev.3.10 (#240)
Browse files Browse the repository at this point in the history
  • Loading branch information
lexaknyazev authored Oct 22, 2024
1 parent 6033ce9 commit bcd52cc
Show file tree
Hide file tree
Showing 5 changed files with 108 additions and 246 deletions.
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,45 @@
# Changelog

## 2.0.0-dev.3.10

### New Features

* Added support for `KHR_materials_anisotropy` extension.
* Added `KHR_MATERIALS_ANISOTROPY_ANISOTROPY_TEXTURE_TEXCOORD` validation warning.

* Added support for `KHR_materials_dispersion` extension.
* Added `KHR_MATERIALS_DISPERSION_NO_VOLUME` validation warning.

* Added new tangent space validations: `MESH_PRIMITIVE_NO_TANGENT_SPACE` validation error and `MESH_PRIMITIVE_GENERATED_TANGENT_SPACE` validation warning.

* Added new `KHR_MATERIALS_CLEARCOAT_CLEARCOAT_NORMAL_TEXTURE_TEXCOORD` validation warning.

* Added partial support for the `KHR_animation_pointer` extension.
* Added new `KHR_ANIMATION_POINTER_ANIMATION_CHANNEL_TARGET_NODE` and `KHR_ANIMATION_POINTER_ANIMATION_CHANNEL_TARGET_PATH` validation errors.
* Added new `INCOMPLETE_EXTENSION_SUPPORT` validation info.

* Web version now supports external resources in directories.

### Changes

* Removed `UNRESERVED_EXTENSION_PREFIX` validation warning.

* Removed `KHR_MATERIALS_IRIDESCENCE_THICKNESS_RANGE_INVALID` validation error following the spec update.

### Bugfixes

* Fixed incorrect errors when an indexed attribute, e.g., `COLOR_0`, is used in morph targets (#178, #213).

* Fixed incorrect errors in the Web version when an asset contains non-relative URIs (#229).

* Fixed crash when skin weights data is missing (#196).

### Integration updates

* The `validateBytes` JS API function now supports a `format` validation option to bypass format detection and force GLB or glTF JSON explicitly.

* Added an option to ignore all validation issues except those passed explicitly; supported in both JS API and YAML config file.

## 2.0.0-dev.3.9

### Bugfixes
Expand Down
67 changes: 53 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# glTF-Validator

<p align="center">
<img src="web/logos/glTF_RGB_June16.svg" alt="" height="250"/>
<img src="web/logos/glTF_RGB_June16.svg" alt="" height="125"/>
</p>

# glTF-Validator

[![Build Status](https://github.com/KhronosGroup/glTF-Validator/workflows/CI/badge.svg)](https://github.com/KhronosGroup/glTF-Validator/actions?query=workflow%3ACI)

Tool to validate [glTF](https://github.com/KhronosGroup/glTF) assets.
Expand All @@ -24,7 +24,7 @@ NuGet package [Third-party contribution]: https://www.nuget.org/packages/GltfVal
- Asset description validation
- All properties and their types from JSON-Schemas (including implicit limitations on valid values).
- Validity and compatibility of internal references.
- Correctness of `Data URI` encoding.
- Correctness of Data URI encoding.
- Binary buffers validation
- Forbidden or incorrect accessor values (e.g., `NaN`, invalid quaternions, indecomposable matrices, etc).
- `accessor.min` and `accessor.max` values.
Expand Down Expand Up @@ -58,8 +58,9 @@ NuGet package [Third-party contribution]: https://www.nuget.org/packages/GltfVal

You can use hosted [web front-end tool](https://github.khronos.org/glTF-Validator). It works completely in the browser without any server-side processing.

#### Command Line Tool Usage
```
### Command Line Tool Usage

```text
Usage: gltf_validator [<options>] <input>
Validation report will be written to `<asset_filename>.report.json`.
Expand All @@ -82,48 +83,86 @@ Shell return code will be non-zero if at least one error was found.
## Building

### Prerequisites

1. Download and install [Dart SDK](https://dart.dev/tools/sdk/archive) for your platform.
2. Add Dart SDK `bin` folder to your PATH.
3. From the repository root folder, run `dart pub get` to get dependencies.
2. Add Dart SDK `bin` directory to your PATH.
3. From the repository root directory, run `dart pub get` to get dependencies.

#### Fetching dependencies from behind a corporate firewall

`dart pub get` downloads dependencies from Google's `pub.dev` server over HTTPS. If you need to specify a proxy, follow these steps:

1. Set `https_proxy` or `HTTPS_PROXY` environment variable in form `hostname:port`.
2. If the proxy requires credentials, use this syntax: `username:password@hostname:port`.

`dart pub get` validates server's SSL certificate. If your corporate network interferes with SSL connections, follow these steps to get it running.

1. Save your corporate self-signed root certificate as X.509 file.
2. (Linux only) Try to add your cert to `/etc/pki/tls/certs/ca-bundle.crt` or `/etc/ssl/certs`.
3. If that doesn't work or if you're on Windows, add environment variable `DART_VM_OPTIONS` with value `--root-certs-file=<cert_file>`.

After doing this, `dart pub get` should be able to download dependencies successfully.

#### Clearing Caches

In rare cases, you may encounter various build issues usually caused by previously cached artifacts and/or packages. To clear all caches and re-download the dependencies, do the following steps:

1. Remove the `.dart_tool` directory and the `pubspec.lock` file from the project root directory.
2. Run `dart pub cache clean --force`.
3. Run `dart pub get`.

### Drag-n-Drop Web Tool
To build a drag-n-drop online validation tool (as hosted [here](https://github.khronos.org/glTF-Validator/)), follow these steps after installation:

To build the drag-n-drop online validation tool (as hosted [here](https://github.khronos.org/glTF-Validator/)), follow these steps after installation:

1. Run `dart run grinder web`.
2. All needed files will be written to `build/web` directory.

To build and package the drag-n-drop online validation tool, follow these steps after installation:

1. Run `dart run grinder web-archive`.
2. An archive will be written to the `build/gltf_validator-VERSION-web.zip` file.

### CLI tool

To build the CLI tool, follow these steps after installation:

1. Run `dart run grinder exe`.
2. Native executable file will be written to `build/bin/gltf_validator` or `build/bin/gltf_validator.exe`.
2. Native executable file will be written to `build/bin/gltf_validator` (Linux and macOS) or `build/bin/gltf_validator.exe` (Windows).

To build and package the CLI tool, follow these steps after installation:

1. Run `dart run grinder exe-archive`.
2. An archive will be written to the `build/gltf_validator-VERSION-PLATFORM.tar.xz` (Linux and macOS) or `build/gltf_validator-VERSION-PLATFORM.zip` (Windows) file.

### NPM Package

To build an npm package for use in Node.js environment, follow these steps after installation:

1. Run `dart run grinder npm`.
2. `gltf-validator` npm package will be written to `build/node`.

Refer to the [npm package documentation](https://www.npmjs.com/package/gltf-validator) for additional information.

#### Publishing

To publish an npm package, follow these steps after installation:

1. Run `dart run grinder npm-publish`.
2. `gltf-validator` npm package will be built to `build/node` and published to npm registry using `npm publish`.

### Post-Build Steps
1. To auto-format all source files, from the root folder run: `dart format --fix .`
2. To run the tests, use: `dart test`

### Validation Issues List

To generate [ISSUES.md](ISSUES.md), follow these steps after installation:

1. Run `dart run grinder issues`.
2. `ISSUES.md` file will be written to the repo root.

## Contributing

Before making a pull request do the following steps:

1. Run `dart format .` (note the dot) to format all source files.
2. Run `dart analyze` to check that there are no analyzer issues.
3. Run `dart test` to check that the tests pass.
4. Run `dart run grinder all` to check that all targets build.
24 changes: 12 additions & 12 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,22 @@ description: Library for loading and validating glTF 2.0 assets
homepage: https://github.com/KhronosGroup/glTF-Validator

dependencies:
args: '^2.3.1'
args: '^2.4.2'
isolate: '^2.1.1'
meta: '^1.8.0'
path: '^1.8.2'
vector_math: '^2.1.2'
yaml: '^3.1.1'
meta: '^1.16.0'
path: '^1.8.3'
vector_math: '^2.1.4'
yaml: '^3.1.2'

dev_dependencies:
archive: '^3.3.0'
build_runner: '^2.1.11'
archive: '^3.4.10'
build_runner: '^2.3.3'
build_version: '^2.1.1'
build_web_compilers: '^3.2.3'
grinder: '^0.9.1'
js: '^0.6.4'
node_preamble: '^2.0.1'
test: '^1.21.2'
build_web_compilers: '^3.2.7'
grinder: '^0.9.4'
js: '^0.6.7'
node_preamble: '^2.0.2'
test: '^1.24.3'

environment:
sdk: '>=2.11.99 <3.0.0'
Expand Down
2 changes: 1 addition & 1 deletion web/scripts/prism.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit bcd52cc

Please sign in to comment.