Skip to content

Commit

Permalink
Lint and check schema for XML files (#2246)
Browse files Browse the repository at this point in the history
  • Loading branch information
phansys authored Oct 5, 2021
1 parent 32c5f39 commit ea80333
Show file tree
Hide file tree
Showing 21 changed files with 106 additions and 161 deletions.
41 changes: 41 additions & 0 deletions .github/workflows/continuous-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,44 @@ jobs:

- name: "Run PHPUnit"
run: "bin/phpunit -c tests"

lint-xml-files:
name: Lint XML files

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Install required dependencies
run: sudo apt-get update && sudo apt-get install libxml2-utils

- name: Lint xml files
run: make lint-xml

lint-doctrine-xml-schema:
name: Lint Doctrine XML schemas

runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v2

- name: "Install PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: "8.0"
extensions: mongodb

- name: "Install dependencies with Composer"
uses: "ramsey/composer-install@v1"
with:
dependency-versions: "highest"

- name: Install required dependencies
run: sudo apt-get update && sudo apt-get install libxml2-utils

- name: Lint xml files
run: make lint-doctrine-xml-schema
27 changes: 27 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
lint-xml:
find './tests/.' \( -name '*.xml' \) \
| while read xmlFile; \
do \
XMLLINT_INDENT=' ' xmllint --encode UTF-8 --format "$$xmlFile"|diff - "$$xmlFile"; \
if [ $$? -ne 0 ]; then echo "$$xmlFile" && exit 1; fi; \
done

.PHONY: lint-xml

lint-doctrine-xml-schema:
find './tests/Gedmo/Mapping/Driver/Xml/.' \( -name '*.xml' \) \
| while read xmlFile; \
do \
xmllint --encode UTF-8 --format "$$xmlFile" --schema "./doctrine-mapping.xsd"; \
if [ $$? -ne 0 ]; then echo "$$xmlFile" && exit 1; fi; \
done

.PHONY: lint-doctrine-xml-schema

cs-fix-doctrine-xml:
find './tests/Gedmo/Mapping/Driver/Xml/.' \( -name '*.xml' \) \
| while read xmlFile; \
do \
XMLLINT_INDENT=' ' xmllint --encode UTF-8 --format "$$xmlFile" --output "$$xmlFile"; \
done
.PHONY: cs-fix-doctrine-xml
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"doctrine/dbal": "^2.13",
"doctrine/doctrine-bundle": "^2.3",
"doctrine/mongodb-odm": "^2.0",
"doctrine/orm": "^2.6.3",
"doctrine/orm": "^2.9.6",
"friendsofphp/php-cs-fixer": "^3.0",
"phpunit/phpunit": "^8.5",
"symfony/cache": "^4.4 || ^5.0",
Expand Down
5 changes: 5 additions & 0 deletions doctrine-mapping.xsd
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<schema elementFormDefault="qualified" xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://doctrine-project.org/schemas/orm/doctrine-mapping" schemaLocation="./vendor/doctrine/orm/doctrine-mapping.xsd"/>
<import namespace="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping" schemaLocation="./schemas/orm/doctrine-extensions-mapping-2-2.xsd"/>
</schema>
Original file line number Diff line number Diff line change
@@ -1,28 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\ClosureTree" table="closure_trees">

<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="name" type="string" length="128"/>

<field name="level" type="integer">
<gedmo:tree-level />
<gedmo:tree-level/>
</field>

<many-to-one field="parent" target-entity="ClosureTree">
<join-column name="parent_id" referenced-column-name="id" on-delete="CASCADE"/>
<gedmo:tree-parent/>
</many-to-one>

<gedmo:tree type="closure"/>
<gedmo:tree-closure class="Mapping\Fixture\ClosureTreeClosure"/>

</entity>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<embeddable name="Mapping\Fixture\Xml\Embedded">

<field name="subtitle" type="string" length="191" />
<field name="subtitle" type="string" length="191"/>
</embeddable>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<embeddable name="Mapping\Fixture\Xml\EmbeddedTranslatable">

<field name="subtitle" type="string" length="191">
<gedmo:translatable/>
</field>
</embeddable>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,24 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\Loggable" table="loggables">

<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="title" type="string" length="128">
<gedmo:versioned/>
</field>
<many-to-one field="status" target-entity="Status">
<join-column name="status_id" referenced-column-name="id"/>
<gedmo:versioned/>
</many-to-one>

<gedmo:loggable log-entry-class="Gedmo\Loggable\Entity\LogEntry"/>

</entity>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,28 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\LoggableWithEmbedded" table="loggables_with_embedded">

<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<embedded name="embedded" class="Mapping\Fixture\Xml\Embedded">
<gedmo:versioned />
<gedmo:versioned/>
</embedded>

<field name="title" type="string" length="128">
<gedmo:versioned/>
</field>
<many-to-one field="status" target-entity="Status">
<join-column name="status_id" referenced-column-name="id"/>
<gedmo:versioned/>
</many-to-one>

<gedmo:loggable log-entry-class="Gedmo\Loggable\Entity\LogEntry"/>

</entity>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,41 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\MaterializedPathTree" table="materialized_path_trees">

<indexes>
<index name="title_idx" columns="title"/>
</indexes>

<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="level" column="lvl" type="integer">
<gedmo:tree-level/>
</field>

<field name="title" type="string" length="64">
<gedmo:tree-path-source />
<gedmo:tree-path-source/>
</field>

<field name="path" type="string" length="3000">
<gedmo:tree-path separator="," />
<gedmo:tree-path separator=","/>
</field>

<field name="lockTime" type="datetime">
<gedmo:tree-lock-time />
<gedmo:tree-lock-time/>
</field>

<many-to-one field="parent" target-entity="MaterializedPathTree">
<join-column name="parent_id" referenced-column-name="id" on-delete="CASCADE"/>
<gedmo:tree-parent/>
</many-to-one>

<gedmo:tree type="materializedPath" activate-locking="true" locking-timeout="10" />

<gedmo:tree type="materializedPath" activate-locking="true" locking-timeout="10"/>
</entity>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\NestedTree" table="nested_trees">

<indexes>
<index name="name_idx" columns="name"/>
</indexes>

<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="name" type="string" length="128"/>
<field name="left" column="lft" type="integer">
<gedmo:tree-left/>
Expand All @@ -26,14 +20,10 @@
<field name="level" column="lvl" type="integer">
<gedmo:tree-level/>
</field>

<many-to-one field="parent" target-entity="NestedTree">
<join-column name="parent_id" referenced-column-name="id" on-delete="CASCADE"/>
<gedmo:tree-parent/>
</many-to-one>

<gedmo:tree type="nested"/>

</entity>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\Sluggable" table="sluggables">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="title" type="string" length="128"/>
<field name="code" type="string" length="16"/>
<field name="ean" type="string" length="13"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\SoftDeleteable" table="soft_deleteables">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="deletedAt" type="datetime" nullable="true"/>

<gedmo:soft-deleteable field-name="deletedAt" time-aware="false" hard-delete="true"/>
</entity>
</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,20 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\Sortable" table="sortables">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="title" type="string" length="128"/>
<field name="position" type="integer">
<gedmo:sortable-position/>
</field>
<field name="grouping" type="string" length="128">
<gedmo:sortable-group/>
</field>
<many-to-one field="sortable_group" target-entity="Mapping\Fixture\SortableGroup" orphan-removal="true">
<many-to-one field="sortable_group" target-entity="Mapping\Fixture\SortableGroup">
<join-columns>
<join-column name="sortable_group_id" referenced-column-name="id" nullable="false"/>
</join-columns>
Expand All @@ -23,10 +20,10 @@
<many-to-many field="sortable_groups" target-entity="Mapping\Fixture\SortableGroup">
<join-table name="sortable_sortable_groups">
<join-columns>
<join-column name="sortable_id" referenced-column-name="id" />
<join-column name="sortable_id" referenced-column-name="id"/>
</join-columns>
<inverse-join-columns>
<join-column name="group_id" referenced-column-name="id" />
<join-column name="group_id" referenced-column-name="id"/>
</inverse-join-columns>
</join-table>
<gedmo:sortable-group/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\Status" table="statuses">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="title" type="string" length="128"/>
</entity>

</doctrine-mapping>
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">

<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:gedmo="http://gediminasm.org/schemas/orm/doctrine-extensions-mapping">
<entity name="Mapping\Fixture\Xml\Timestampable" table="timestampables">
<id name="id" type="integer" column="id">
<generator strategy="AUTO"/>
</id>

<field name="created" type="datetime">
<gedmo:timestampable on="create"/>
</field>
Expand All @@ -17,10 +13,8 @@
<field name="published" type="datetime" nullable="true">
<gedmo:timestampable on="change" field="status.title" value="Published"/>
</field>

<many-to-one field="status" target-entity="Status">
<join-column name="status_id" referenced-column-name="id"/>
</many-to-one>
</entity>

</doctrine-mapping>
Loading

0 comments on commit ea80333

Please sign in to comment.