incorrect-home rejects valid URLs with percent-encoded path components
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
Research direction
The URL check lives in src/main/resources/org/eolang/lints/metas/incorrect-home.xsl, where the regular expression excludes % from the path and query characters. Start there, then run the EO example with +home https://example.com/My%20Project through the lint to confirm the defect. Done means percent-encoded URLs pass, while malformed URLs still produce the defect and the plain-URL control keeps passing.
Written by the indexing model from the issue text.
Description
incorrect-home reports a valid HTTP URL as malformed when its path contains percent-encoded characters. This prevents a project from supplying its actual documentation URL through +home, for example when a path component contains a space.
Steps to reproduce
Lint this EO source with incorrect-home:
+home https://example.com/My%20Project
[] > app
1 > @
Actual result
<defect line="1" severity="warning">The format of the URL at the +home meta is wrong: "https://example.com/My%20Project"</defect>
Expected result: no incorrect-home defect. %20 is the encoded space in a valid URL path, not a malformed URL character. Replacing the URL with https://example.com/MyProject produces no defect, so the failure is specifically caused by percent encoding.
Reproduced on master 0edb00fcc69bd9131e86c84e2f72279ab2f2e7b6 by parsing the EO input with EoSyntax and applying the actual metas/incorrect-home.xsl stylesheet with Saxon and its imports. Both the failing input and the control parse successfully.
The URL regular expression in src/main/resources/org/eolang/lints/metas/incorrect-home.xsl excludes % from the permitted URL path/query characters. Percent encoding is used for spaces and other characters in ordinary HTTP URLs, so such links cannot pass this lint. The example needs no live HTTP server: URL syntax validity does not depend on whether the target page exists.
- Dominant language
- Java
- Stars
- 14
- Forks
- 38
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 37
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from objectionary/lints
-
bug good-title
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
objectionary/lints#1556 ·
Maintainers usually reply within 2 days
-
bug good-title
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
objectionary/lints#1555 ·
Maintainers usually reply within 2 days
-
`Source.without()` doesn't flag non-existing lint names, causing silent failuresPossibly taken @Thayorns claimed this 2 days ago. Openbug good-title
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
objectionary/lints#1545 ·
Maintainers usually reply within 2 days
-
`incorrect-package` motive's documentation conflicts with the lint's actual rule applicationPossibly taken @gemshrine claimed this 2 days ago. Openbug good-title
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
objectionary/lints#1544 ·
Maintainers usually reply within 2 days
-
Inconsistency between `incorrect-test-object-name` documentation and actual lint behaviorPossibly taken @gemshrine claimed this 2 days ago. Openbug good-title
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
objectionary/lints#1543 ·
Maintainers usually reply within 2 days
All issues in objectionary/lints
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
apache/rocketmq-dashboard#6716 ·
Maintainers usually reply within 3 days
-
DefaultRedisList.get(int) does not reject an index equal to the list sizePossibly taken @ryujungkyun claimed this today. Openstatus: waiting-for-triage
Difficulty 1/5 Under an hour Newbie friendliness 68/100
spring-projects/spring-data-redis#3471 ·
Maintainers usually reply within 5 days
-
:maddi-inspection-kotlin:test runs out of heap in a full maddi test run; exit 1 with no failing testOpenbuild/ci front-end:kotlin
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
uwolfer/gerrit-intellij-plugin#768 ·
Maintainers usually reply within 1 day