-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
International keywords #487
Comments
This is contradictory with what you are saying below:
It seems to me that there are no problems with the |
Yes, you are correct. It appears that the classes (cucumber.api.java.sv.Så and cucumber.api.java.sv.När) is problematic somehow, since there are no errors in Eclipse for import cucumber.api.java.sv.Givet (the import statement is accepted by Eclipse Juno and the annotation @givet in the step def is also recognized). |
Are your source files saved with UTF-8 encoding? |
[INFO] -------------------------------------------------------------
|
Please create a minimal example in a new Github repo that we can clone to reproduce the error. |
You find it here: https://github.com/hangvar/cucumber_helloworld_problem |
bump |
ack |
I think this might be related to JDK version 6/7 and file name encodings. @dkowis remember that a fes months ago? You wrote ablog post about it too. I'm not sure, but I think maybe 1.1.3 was the first release done with java 7, after previously using java 6. |
Ah yeah, it wasn't actually java, but Java + Apple + Mac Filesystems. Relevant blog post: http://shlrm.org/blog/2012/10/04/osx-java-utf-8-oh-my/ |
Hmm, but this shouldn't really be my issue since I'm not on Mac. I run Windows 7. |
It was built on a Mac, which is what might have screwed up the class file names. |
The regression seems to have been introduced in 1.1.2:
That gives you this diff:
The multibyte lines look the same, but they are actually different. One is using precomposed characters, and the other one is using decomposed. See http://en.wikipedia.org/wiki/Precomposed_character. Needs further digging to solve, but at least we know the cause. |
Hmm, interesting problem. I've tried to look for a unicode converter (NFD to NFC), but I can't find anyone for windows. Also, I'm not sure how that would work on the jar file. I guess building cucumber-jvm locally would render the same problem, unless I can get git to convert to utf-8 NFC. Any other ideas? |
The problem must be solved on my end, not yours. Building and releasing on a Mac with JDK7 currently produces invalid class file names. We have to figure out how to fix the build process. |
Release using a Linux box? ;) I could maybe spin up a Rackspace Cloud machine we could use for this. |
I think Vagrant+VirtualBox would works too ;) |
I need this to work on OS X. I don't want to spin up a VM or use a server to develop. This is a hard problem to solve. I thought for a long time that the JDK7/OS X compilation problems we were facing earlier could be fixed by writing out DFA converted file names. This did indeed make the JDK7 compiler able to compile the generated annotation classes, but it would produce incorrect class file names. Then I thought I had fixed the incorrect file name problem by not performing any DFA This made me able to compile non-DFA converted file names on JDK7/OS X, but this created another problem. Stepdefs using the annotations would not compile. This whole thing is a shit show, and the only reliable fix I can think of is to avoid multibyte characters in file names altogether. I'll send a pull request for review. |
@aslakhellesoy Can you format a partition differently? I don't know anything about OSX, but it's the filesystem that's being lame. So if you could use a partition formatted to something else that OSX can understand, perhaps one of the linux filesystems, that would solve the problem, yes? |
http://blog.applegrew.com/2011/12/access-ext3ext2-file-system-on-mac-osx-lion-10-7/ Blech, none of these options are particularly good. I'm glad I run linux. |
Also check today's #cucumber IRC logs for discussions and links |
I agree that removing Mac from list of platforms people can use for Cucumber's development is bad idea. So any idea which helps to fix the problem should be considered. And I, personally, like the approach suggested in #487
what exactly you do not like? Does the IDE suggests something like lang.keyword instead of keyword? |
@aslakhellesoy yep, it is a nasty problem, I'd like to see it fixed too ;) |
Will this proposed solution be merged and included in the next release? |
Maybe. I'm still having some problems with the proposed solution (only when building on a Mac) so it depends on whether or not I can solve it. Obviously, if anyone can help solving this it would help a lot. If the problem isn't solveable I'll have to figure out a way to put a Linux inside my mac. This is a tricky problem to solve. |
@aslakhellesoy any news? I don't have a mac, so I can't really help with this. |
We should try to make Travis publish to the staging repo when the version is not a snapshot.
WDYT? |
Hm. Travis is really darn slow. Could we accomplish the same thing with a Vagrant driven VM? That should be faster, since it's an on-demand build, but we don't have to do it this way. We would have to do the work of picking out a suitable VM, and writing a few puppet manifests... ugh, more work. I'm not a huge fan of this, since it's only Macs and their silly file systems that are affected by this, and I think it's only if the artifacts are built on a Mac? Or did we also figure out that artifacts built on a Linux don't work on a Mac? (I can't remember.) It does get the job done, however, and I can't really think of anything better |
@dkowis the lead time from a push to a green build is somewhere between 15-30 minutes. I agree it's slow, but in the context of cutting a release every month or so I don't think it matters. Simplicity trumps speed in this case, and having travis do most of the grunt work for a release would be awesome. |
True, if the speed becomes a problem, we'll resolve it later I'm sure. Ship all the things. |
It would be great to have Travis do the release. It should upload artifacts to the release repo automatically if we remove -SNAPSHOT from all POMs. One challenge is to sign the artifacts. It might be possible: https://groups.google.com/d/msg/travis-ci/86sOKUoFEy0/vjn8X0xxFzYJ |
Given that Travis is sometimes timing out on us, do we still rely on Travis to do solve this problem for us? |
We never relied on it for releases, only snapshots. I'm back on a Mac with good old trusty java 1.6, which works. And I'm now familiar with vagrant and dockers, so I'm happy to switch to linux if the problem comes back. Leaving the ticket open though. |
The fixes on e6beaf4 helped, but the only way I was able to make it actually work on my Mac was by adding |
@robertoandrade thanks for the heads up! Fixed in a0e85ec |
This is fixed on master (1.1.6-SNAPSHOT) |
On my Mac it still fails on
|
I finally got to the bottom of it:
|
Might also have to do with the fix described in the report I linked to: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=8003228 I'm currently running JDK 1.7.0_51 which already contains the fix. |
Hi Guys , Has this issue been fixed? We run our system on JDK7, Windows 10, Cucumber feature file uses Norwegian language. We are getting following compilation errors: Kindly help. Thanks. |
@jeeveshmishra which version of cucumber are you using? Also please ensure your file encoding is utf-8. |
Hi we are using 2.5.1 version of cucumber.
…On Sep 8, 2017 17:05, "M.P. Korstanje" ***@***.***> wrote:
@jeeveshmishra <https://github.com/jeeveshmishra> which version of
cucumber are you using?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#487 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ALbBaxpSQY-NU0wOYL9hy9fHWZE19Tdkks5sgVejgaJpZM4AgqE5>
.
|
Norwegian feature files works on Windows 10 (and Java8), both with Cucumber-JVM 1.2.5 and with Cucumber-JVM 2.0.0 (I did just test that) - there is no version 2.5.1. It is however important to save the files using utf-8 (and utf-8 is not the default file format on Windows). |
Hi,
My apologies for the wrong version number as I did not have my machine.
And you are right in the version no
1.2.5. Though we have jdk 1.7. Can there be a workaround for jdk 1.7?
Regards,
Jeevesh.
+47 93983073.
…On Sep 8, 2017 22:36, "Björn Rasmusson" ***@***.***> wrote:
Norwegian feature files works on Windows 10 (and Java8), both with
Cucumber-JVM 1.2.5 and with Cucumber-JVM 2.0.0 (I did just test that) -
there is no version 2.5.1. It is however important to save the files using
utf-8 (and utf-8 is not the default file format on Windows).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#487 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ALbBa7NiZcdR4sEBW2WY0-TtTl_ZIhTKks5sgaU7gaJpZM4AgqE5>
.
|
What file encoding are the .feature files saved as? It needs to be UTF-8. File encoding needs to be UTF-8. |
In order to investigate this further, please create a git repo with one feature file and a build script ( Then, create a new ticket with a link to your repo. Nobody is monitoring 4 year old closed tickets. |
@jeeveshmishra Your screen shot explicitly says |
This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Hi,
I have problems switching the examples to Swedish international keywords. I've tried helloworld as well as java-calculator and both are having problems when I change to the following import statements:
import cucumber.api.java.sv.Så;
import cucumber.api.java.sv.När;
It seems that Eclipse is not recognizing these packages in the repositories. I'm using everything else "as-is" from github (cucumber-jvm 1.1.3).
Please note that I have no problems with:
import cucumber.api.java.sv.Givet;
which makes me suspect something related to the special Swedish characters.
The text was updated successfully, but these errors were encountered: