Comments (6)
@Anniepoo Would I correctly paraphrase your request as "Add the option to install a SWI pack locally during pack development"?
from swipl-devel.
Note that you can easily do that by installing from a local directory or archive file. So, to develop a pack
- Make a directory with the name of the pack
- Realise the pack in there, including the prolog dir and pack.pl file
- Run
?- pack_install(packdir).
, uninstall and install the pack until you are happy. - Then make it available from a public place and install it to be registered.
from swipl-devel.
@JanWielemaker Then this turns into a documentation issue. I'll update the Pack docs with the intended workflow you describe.
from swipl-devel.
Can this method then assure that the pack will:
a) appear properly on the list of packs page when it's downloaded for the first time? (eg we've seen issues with different implementations of zip)
b) install properly for users?
I'd just suggest that a separate predicate for a separate action is called for - publish_pack/1 would install the pack and publish it if necessary. install_pack/1 would only install
from swipl-devel.
@Anniepoo Your points (a) and (b) seem to be different issues? Can you open a separate issue for the ZIP thing?
@JanWielemaker I believe that Annie's request to use a different predicate name in order to denote an different step in the workflow you outlined above makes sense. Do you agree? Developers would use install_pack/1
in the local workflow and would use publish_pack/1
once they're done.
from swipl-devel.
We want developers to be in control of when the pack is published, so yup, two predicates.
It also gives us a roadmap for improvement - publish_pack can always have more preflight code added and doesn't have strict backwards compatibility requirements. install_pack needs to be happier installing some pack from an old version of the pack protocol.
If we add a pack protocol version check to the swi-prolog.org end code, we can someday add a check for version to the protocol code.
So architecturally, I think it's a good, simple to implement solution.
from swipl-devel.
Related Issues (20)
- Bulding with ninja fails with error: 'man/utf8proc' missing and no known rule to make it HOT 1
- [s390x] fails to build ... division by zero in (SIZEOF_WORD/SIZEOF_CODE) HOT 2
- [ppc64le] fails to build WAM Table mismatch: wam_table[224(t_smallint)] == wam_table[226(t_smallintw)] HOT 1
- Mac: "SWI-Prolog" cannot be opened because the developer cannot be verified. HOT 1
- UBSAN errors, need inspection HOT 2
- Crashes at command line HOT 12
- Pack buildenv.sh SWIPL_CC doesn't match Prolog flag c_cc HOT 3
- Garbo.java:13: warning: [removal] finalize() in Object has been deprecated and marked for removal HOT 1
- linking of the package fails on ppc64le HOT 1
- FTBFS: division by zero error while building on s390x HOT 2
- test string:string_upper is locale dependent HOT 6
- binary-or-shlib-calls-gethostbyname issues HOT 2
- given prefix mode “fy” for atom "[]" ignored HOT 7
- error messages upon opening the prolog editor HOT 1
- small glitch in docu of library(dcg/high_order)).
- installing a local pack fails if git is not installed
- swipl-win >Run>New thread, no new console but an error HOT 1
- swi-prolog build crashed during documentation build HOT 2
- segfault in read_file_from_codes/3 when running out of stack HOT 2
- pack_install - requires(prolog:c_cxx) in pack.pl causes crash HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swipl-devel.