Skip to content

Commit 6e5f99d

Browse files
authored
Merge pull request #3816 from volodya-lombrozo/3812_phi_unphi_docs
feat(#3812): Extend Docs About 'PHI/UNPHI' Issues
2 parents 669ef41 + 7a08c51 commit 6e5f99d

1 file changed

Lines changed: 60 additions & 8 deletions

File tree

eo-maven-plugin/README.md

Lines changed: 60 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
[![Maven Central](https://img.shields.io/maven-central/v/org.eolang/eo-maven-plugin.svg)](https://maven-badges.herokuapp.com/maven-central/org.eolang/eo-maven-plugin)
44
[![Javadoc](http://www.javadoc.io/badge/org.eolang/eo-maven-plugin.svg)](http://www.javadoc.io/doc/org.eolang/eo-maven-plugin)
55

6-
This is Maven plugin for EO.
6+
This is a Maven plugin for EO.
77

8-
Here is a simple program that gets a year from command line and tells you
8+
Here is a simple program that gets a year from a command line and tells you
99
whether it's leap or not:
1010

1111
```eo
@@ -24,7 +24,7 @@ whether it's leap or not:
2424
2525
```
2626

27-
In order to compile this program, put it into `src/main/eo/main.eo` and then
27+
To compile this program, put it into `src/main/eo/main.eo` and then
2828
create a file `pom.xml` with this content (it's just a sample):
2929

3030
```xml
@@ -111,7 +111,7 @@ for most popular and important objects that any of you will need in order
111111
to write even a simple EO program. There are objects like `string`, `int`, `sprintf`,
112112
`stdout`, and so on. By the way, you may want to contribute there by creating new objects.
113113

114-
## Objectionary objects cache
114+
### Objectionary objects cache
115115

116116
If any external object is used in EO program it will be pulled from [Objectionary home](https://github.com/objectionary/home).
117117
By default, during compilation the plugin will check local cache (`~/.eo`) for required objects
@@ -124,7 +124,7 @@ Maven option `-U` (see [Maven CLI docs](https://maven.apache.org/ref/3.1.0/maven
124124
mvn -U clean install
125125
```
126126

127-
If you want to build your project or run your tests which use eo-maven-plugin, you can change stack
127+
If you want to build your project or run your tests, which use eo-maven-plugin, you can change stack
128128
size for your purposes by stack-size option:
129129

130130
```shell
@@ -133,10 +133,62 @@ mvn clean install -Pqulice -Dstack-size=1M
133133

134134
where 1M is size of stack. By default stack-size = 256M in eo-maven-plugin, maximum size is 1G.
135135

136-
## How to run Integration Tests only
136+
## PHI and UNPHI Transformations
137+
138+
`eo-maven-plugin` supports PHI/UNPHI transformations.
139+
To transform your XMIR files, you need to add the following plugin configuration to your `pom.xml`:
140+
141+
```xml
142+
<plugin>
143+
<groupId>org.eolang</groupId>
144+
<artifactId>eo-maven-plugin</artifactId>
145+
<version>0.50.0</version>
146+
<executions>
147+
<execution>
148+
<id>xmir-to-phi</id>
149+
<phase>process-classes</phase>
150+
<goals>
151+
<goal>xmir-to-phi</goal>
152+
</goals>
153+
<configuration>
154+
<phiInputDir>${eo.xmir.files}</phiInputDir>
155+
<phiOutputDir>${eo.phi.files}</phiOutputDir>
156+
</configuration>
157+
</execution>
158+
<execution>
159+
<id>phi-to-xmir</id>
160+
<phase>process-classes</phase>
161+
<goals>
162+
<goal>phi-to-xmir</goal>
163+
</goals>
164+
<configuration>
165+
<unphiInputDir>${eo.phi.files}</unphiInputDir>
166+
<unphiOutputDir>${eo.xmir.files}</unphiOutputDir>
167+
</configuration>
168+
</execution>
169+
</executions>
170+
</plugin>
171+
```
172+
173+
Pay attention, that `PHI/UNPHI` transformations don't support `metas` objects
174+
in the current version of the plugin.
175+
This might lead to possible loss of information about an object's metadata.
176+
You can read more about it [here](https://github.com/objectionary/eo/issues/3812#issuecomment-2589728681).
177+
178+
## How To Build Plugin
179+
180+
To build the plugin and install it locally, run the following command under the `eo-maven-plugin` directory:
181+
182+
```shell
183+
mvn clean install -Pqulice
184+
```
185+
186+
It will build the plugin and install it in your local Maven repository.
187+
188+
### How to run Integration Tests only
137189

138190
If you want to run a specific integration test without waiting until other unit or integration tests
139-
are executed you need to go to `eo-maven-plugin` directory and execute the next command:
191+
are executed, you might execute the following command under the `eo-maven-plugin` directory:
140192

141193
```shell
142194
mvn clean integration-test invoker:run -Dinvoker.test=fibonacci -DskipTests
@@ -145,7 +197,7 @@ mvn clean integration-test invoker:run -Dinvoker.test=fibonacci -DskipTests
145197
Here `fibonacci` is the name of the desired integration test, `-DskipTests` is used in order to skip
146198
`eo-maven-plugin` unit tests.
147199

148-
## How to disable Integration Tests
200+
### How to disable Integration Tests
149201

150202
It is sometime necessary to temporarily disable the integration tests (for example for introducing
151203
braking changes into plugin or EO runtime). This can be achieved by disabling `maven-invoker-plugin`

0 commit comments

Comments
 (0)