[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2017-01-17 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15827180#comment-15827180
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
Cool, that's awesome. This news means the scope has changed, which is great 
but brings up the visibility of the id. 

Could I suggest that the user-visible engine-instance-id be settable by the 
user as a string. The path to template code is already in the metadata--great. 
Hash the path by default and report it or allow it optionally to be set with a 
string.

As you know I'm proposing that our goal be to have one PIO service that 
uses dataset and engine ids to send input and make queries like a DB with 
several human named tables. Allowing the user to set the ids makes it possible 
to have human readable ones used directly in this future REST API. Like 

 - `GET /engines/amazon/_query {json query body}` for a query to the 
"Amazon" engine
 - `GET /engines/netflix/_query {json query body}` for a query to the 
"Netflix" engine

Substitute any id you want and use with any template you want. BTW this 
method is used in several different REST APIs from MongoDB to Elasticsearch 
where tables are named by humans and the ids used in REST.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2017-01-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823417#comment-15823417
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user chanlee514 commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
@pferrel: Yes the hash of engine directory path is used as engineVersion 
(which kind of acts as the id). 

However, I'm working on making updates to this PR so that users can provide 
the directory path as CLI argument for `pio build/train/deploy/undeploy` 
commands. This will enable users to run pio commands anywhere, and hopefully 
make this issue clearer.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2017-01-15 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15823274#comment-15823274
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
Actually the manifest may be gone but the requirement of the same absolute 
path is maintained, I believe. A hash of the path to the template code is used 
to create the id and is part of the metadata for the engine. So the "same path" 
remains but the manifest goes away. Correct me @chanlee514 if I'm wrong.

We are trying to create a roadmap that makes these hidden dependencies more 
clear and removing those that we can.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-13 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15747066#comment-15747066
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
The file path is required to be the same on any 2 machines and is 
explicitly in the metadata. If you have the deploy machine dir in a different 
path than the train machine dir (actually the build dir in 0.10.0) you'll get 
the completely incomprehensible "one for one" failure. At least this is one 
reason for it. 

This IMO is  a major confusion point in PIO. Therefore I still think the ID 
should be explicit and engine-id and engine-version should be eradicated 
completely. 

Can someone please tell me why we need anything more than 

 - a dataset-id  (app)
 - a model-id, which points to metadata used to create a model from a 
dataset
 - the metadata would contain the specific engine.json data used and the 
dataset-id (actually the appName in the engine but we need to remove this too) 
so it would connect the model-id to the dataset-id with all data needed to 
create the model from the dataset.

In all commands (but one) this would allow the metadata to be retrieved 
from the metastore.

We can then re-do the CLI to be completely stateless, and not require 
anything be copied between machines except a common knowledge of IDs.

I will write up a proposal for this, maybe it will make sense but at least 
we can discuss it in concrete terms.




> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-13 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15747013#comment-15747013
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
@chanlee514 said: 

If the absolute filepath is the same in the machines (since SHA-1 hash of
filepath is used as engineVersion), there would be no changes in the above
workflow. You can just copy the engine directory and deploy. If not, you
can also provide engine-id, engine-version as CLI arguments.

There's some additional ongoing work to make the process more robust and
clearer, such as enabling engine-directory as CLI input, help messages, and
adding tests to cover such scenarios. I don't think the PR will be merged
before then.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-12 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15742951#comment-15742951
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
too much noise in @dev, I have a simple question. 

If I train on one machine, how do I deploy on another. Currently I copy the 
manifest--well actually the entire directory--from the train machine to the 
deploy machine. 

This is actually a very important use case because the train machine has 
the Spark driver on it so it may have to be very large (and temporary, but the 
deploy machine can be smaller and far cheaper. Not to mention having multiple 
PredictionServers behind a load balancer.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-05 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15722894#comment-15722894
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user dszeto commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
@chanlee514 @pferrel I have moved the discussion to dev@.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-02 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15716175#comment-15716175
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
@dszeto asked: "Do you currently have any production deployments that rely 
heavily on engine IDs and versions? That would be a bigger immediate concern 
regarding this change."

Yes. That is why so many questions above. We create a pio driver machine 
that runs training and is then taken down. This is in sync with bringing up 
Spark and taking it down. The pio driver machine is really part of the cluster 
and for the UR (and other PIO templates we have) the predict part runs without 
Spark. So this requires we use some engine instance id across machines to find 
data in the metastore. We also have deployments with 2 EventServers and 2 
PredictionServers behind a load balancer. This requires that the same metadata 
is available to several different machines running, what I've come to see as 3 
independent processes, ES, PS, train. They are independent except for the 
metadata.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-02 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15716131#comment-15716131
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
One more question. After push how do we run the PredictionServer or train 
on multiple machines? In the past this required copying the manifest.json and 
making sure binaries are in the same location on all machines. 


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-02 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15716121#comment-15716121
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
ok, this looks like a good step

@dszeto we would not do `pio build` we would do `sbt build` in the 
directory that has the template and this is fine IMO. The confusion users have 
is over pio commands.

BTW @chanlee514 @dszeto Are we thinking of a new command, something like 
`pio register` that would add metadata to the metastore? This would need to be 
run every time the engine.json changed for instance? It would also do not 
compile? Is there an alternative? What state does this leave us in? After the 
push, what action create binary (I assume `pio build`) what action adds 
metadata to the metastore (I assume `pio build`) So this is only about changing 
the instance id and getting rid of manifest, right?

If so I'm totally cool with this, a good step I agree. I guess I'm using 
this PR as a forum for discussion and will move it to @dev 


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-01 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15713541#comment-15713541
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user dszeto commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
@pferrel For `pio build` we probably can enhance it such that it can take a 
working directory for compilation to run. If we look at some other build tools, 
they also rely on having certain files in the current working directory.

For `pio train` and `pio deploy`, I absolutely agree that it should be able 
to run from anywhere as the most advanced scenario. My personal take to this 
change would be something comparable to a local HBase and distributed HBase 
setup. It would be ideal if someone can start playing with PredictionIO without 
setting up any external services (not even a SQL database). I believe Chan's 
change here is a partial step to make the learning curve less steep, and path 
ways for us to untangle engine registration so that it could become a feature 
that can be more easily documented and understandable.

Do you currently have any production deployments that rely heavily on 
engine IDs and versions? That would be a bigger immediate concern regarding 
this change.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-01 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15713237#comment-15713237
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user chanlee514 commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
@pferrel: I agree, and that would be possible with a general metadata 
registry server which would be the next step. The reason I started by removing 
manifest.json is because the previous database-dependent build was a roadblock 
for PredictionIO in PaaS platforms such as Heroku. 

Information in engine.json is written during `pio train` as engineInstance.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-01 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15712601#comment-15712601
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user pferrel commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
Ideally `pio build` and `pio train` should run anywhere by supplying any 
params needed.

@chanlee514 metadata still is needed in a service like Elasticsearch so 
every place the model is deployed will know the params. When is engine.json etc 
written to the metastore?


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-01 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15711279#comment-15711279
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user chanlee514 commented on a diff in the pull request:


https://github.com/apache/incubator-predictionio/pull/328#discussion_r90399368
  
--- Diff: 
core/src/main/twirl/org/apache/predictionio/workflow/index.scala.html ---
@@ -65,13 +63,6 @@
 Average Serving Time@{f"${avgServingSec}%.4f"} 
seconds
 Last Serving Time@{f"${lastServingSec}%.4f"} 
seconds
 Engine Factory Class 
(Scala/Java)@{engineInstance.engineFactory}
-
--- End diff --

Maybe we can search for the relevant .jar files in engine target/ directory?


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (PIO-47) Remove engine manifest for stateless build

2016-12-01 Thread ASF GitHub Bot (JIRA)

[ 
https://issues.apache.org/jira/browse/PIO-47?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15711256#comment-15711256
 ] 

ASF GitHub Bot commented on PIO-47:
---

Github user chanlee514 commented on the issue:

https://github.com/apache/incubator-predictionio/pull/328
  
Right now, the commands throw java.io.FileNotFoundException regarding 
engine.json. May be better if we throw an error message saying the commands 
should be executed inside engine directory.


> Remove engine manifest for stateless build
> --
>
> Key: PIO-47
> URL: https://issues.apache.org/jira/browse/PIO-47
> Project: PredictionIO
>  Issue Type: New Feature
>Reporter: Chan
>
> As discussed in the dev mailing list, removing engine manifest would be the 
> first step in improving the workflow towards a more modular design. 
> - Remove manifest.json completely. `pio build` will be stateless, and will 
> not write anything to the database. This will make it easier to compile/build 
> on PaaS platforms such as Heroku. Later, we can remove `pio build` command 
> entirely, so that PIO is independent of the build tool (sbt).
> - An immediate major disadvantage would be not being able to run pio commands 
> outside of the engine directory. This can be resolved in the next step of 
> creating a general metadata registry.
> - Meanwhile, we can use engineFactory as *engineId* , and SHA-1 hash of 
> engine filepath as *engineVersion* (as before). We can improve this when 
> designing a metadata registry, 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)