Comments (4)
I think the intention here is that a) file paths should most always
encoded using the forward slashes, independent of the actual file
system b) portability for windows is not a top priority.
Sent from my iPad
On Oct 19, 2011, at 12:59 AM, Christian Walde
[email protected]
wrote:
I develop on windows and deploy on linux, which means that when i change the carton.lock file, the whole thing gets changed a lot, because doing so on windows results in \ separators, while on linux they all get replaced with / separators.
I'm not sure whether it's worth digging into and what the intended behavior is. Thoughts?
Reply to this email directly or view it on GitHub:
#23
from carton.
Perfect. For what it's worth: The backward slashes do almost nothing towards windows compatibility, since very few tools i encounter are unable to use them. In fact, more often than not using backward slashes breaks things even on windows. As such i'm perfectly happy to enforce forward slashes everywhere.
You'll be getting a patch for that.
from carton.
Yeah, perl tools are most of the time able to use forward slashes. The only exceptions are when we need to shell out to the commands, like specifying the path for cmd.exe via system.
Also for the note of portability:
While I don't have a big priority on making the Carton code portable as possible, it'd be always good to ensure it works on foreign platforms such as Win32, so long as the code doesn't get a whole mess or too complicated to maintain.
For the future note, your use case of building vs deploying on different platforms is a separate issue that we need to address in the future. For example, some of the modules would require separate Win32:: modules as a dependency on Windows platform. We can expect the same thing for perl versions, such as building the dep list on 5.14 and deploy on 5.8 - because 5.14 has more core modules than on 5.8, chances are you'll miss some of the modules in the carton.lock file.
from carton.
It's honestly not only perl tools. Whenever i do stuff on the command line i just habitually use / and it's not been an issue for the past few years for me. :)
As for the portability note: I figured that was already adressed by the lib path you use. Sounds like a massive ball of wax to get into. :/
But i guess once i run into actual issues with that, since my dev perl and os are different from my deploy perl and os, i'll be making some suggestions as to how to deal with that.
As for the backslash issue:
I tracked it down and the problem is caused by
- loading the install.json ( https://github.com/miyagawa/carton/blob/master/lib/Carton.pm#L319 )
- created by cpanm ( https://github.com/miyagawa/cpanminus/blob/master/lib/App/cpanminus/script.pm#L1422 )
- which in turn takes the data from Module::Metadata ( https://github.com/dagolden/Module-Metadata/blob/master/lib/Module/Metadata.pm#L183 ).
That makes it three possible places to fix and i have no idea which one would be appropiate. Thoughts?
from carton.
Related Issues (20)
- Feature request. Add --show-build-log-on-failure flag
- carton install --deployment fails HOT 2
- Missing Carton dependency Menlo-CLI-Compat-1.901800 HOT 3
- Module::Find 0.09 cannot be snapshotted or bundled HOT 1
- Error while updating HOT 1
- carton install generates empty cpanfile.snapshot when used with Docker HOT 3
- Core modules are not installed/upgraded, even if a package requires a newer version HOT 3
- perlbrew + carton: Do not hardcode version in shebang HOT 1
- cpanfile.snapshot is not created HOT 5
- Linux::Inotify2 uninstallable via "carton install --deployment" and missing from cpanfile.snapshot HOT 3
- In cpanfile.snapshot, MailTools always records the desired version AND the latest version, fails carton install --deployment HOT 6
- carton doesn't work when invoked on the filesystem root
- "carton fatpack" not working HOT 2
- How to remove a requirement? HOT 3
- Missed dependency. Carton does not bundle everything HOT 13
- Document, that `carton` requires absolute path to `local/lib/perl5` HOT 1
- A way to reuse an installed module or patch the one to be installed?
- `carton bundle` ignores --cpanfile option but respects `PERL_CARTON_CPANFILE` environment variable HOT 1
- Parsing module version of Getopt::Long 2.55 HOT 1
- The version number in generated install.json is a number HOT 12
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 carton.