amoeba commented on issue #39990: URL: https://github.com/apache/arrow/issues/39990#issuecomment-1933220718
I did a bit of research and I think [sphinx-lint](https://pypi.org/project/sphinx-lint/) might work here. I first checked whether sphinx had anything in-built and I didn't find anything. There are reStructuredText linters but at least one of those doesn't understand Sphinx directives so I think we need something Sphinx-aware here. Another option would be to implement checks using one or more shell utilities but that's probably not a good route to go down. [sphinx-lint](https://pypi.org/project/sphinx-lint/) has a number of checks that can be disabled or enabled selectively, and it uses exit codes to indicate a clean run so it would be easy to adapt into CI. The full list of checks are: ``` $ sphinx-lint --list 22 checkers selected: - backtick-before-role: Search for roles preceded by a backtick. - bad-dedent: Check for mis-alignment in indentation in code blocks. - carriage-return: Check for carriage returns (\r) in lines. - dangling-hyphen: Check for lines ending in a hyphen. - directive-missing-colons: Search for directive wrongly typed as comments. - directive-with-three-dots: Search for directives with three dots instead of two. - horizontal-tab: Check for horizontal tabs (\t) in lines. - hyperlink-reference-missing-backtick: Search for missing backticks in front of hyperlink references. - missing-backtick-after-role: Search for roles missing their closing backticks. - missing-colon-in-role: Search for missing colons in roles. - missing-final-newline: Check that the last line of the file ends with a newline. - missing-space-after-literal: Search for inline literals immediately followed by a character. - missing-space-after-role: Search for roles immediately followed by a character. - missing-space-before-default-role: Search for missing spaces before default role. - missing-space-before-role: Search for missing spaces before roles. - missing-space-in-hyperlink: Search for hyperlinks missing a space. - missing-underscore-after-hyperlink: Search for hyperlinks missing underscore after their closing backtick. - python-syntax: Search invalid syntax in Python examples. - role-with-double-backticks: Search for roles with double backticks. - role-without-backticks: Search roles without backticks. - trailing-whitespace: Check for trailing whitespaces at end of lines. - unbalanced-inline-literals-delimiters: Search for unbalanced inline literals delimiters. ``` And it finds quite a few errors in the <details> <summary>sphinx-lint output against main</summary> ``` $ sphinx-lint source/conf.py:508: OMG TABS!!!1 (horizontal-tab) source/python/json.rst:24: trailing whitespace (trailing-whitespace) source/python/orc.rst:115: trailing whitespace (trailing-whitespace) source/python/compute.rst:26: trailing whitespace (trailing-whitespace) source/python/compute.rst:94: trailing whitespace (trailing-whitespace) source/python/compute.rst:303: trailing whitespace (trailing-whitespace) source/python/compute.rst:328: trailing whitespace (trailing-whitespace) source/python/compute.rst:395: trailing whitespace (trailing-whitespace) source/python/compute.rst:444: trailing whitespace (trailing-whitespace) source/python/compute.rst:500: trailing whitespace (trailing-whitespace) source/python/compute.rst:502: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:40: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:66: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:78: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:95: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:102: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:125: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:154: trailing whitespace (trailing-whitespace) source/python/getstarted.rst:155: trailing whitespace (trailing-whitespace) source/python/data.rst:243: trailing whitespace (trailing-whitespace) source/python/data.rst:285: trailing whitespace (trailing-whitespace) source/python/data.rst:287: trailing whitespace (trailing-whitespace) source/python/data.rst:288: trailing whitespace (trailing-whitespace) source/python/dataset.rst:578: trailing whitespace (trailing-whitespace) source/python/dataset.rst:579: trailing whitespace (trailing-whitespace) source/python/dataset.rst:581: trailing whitespace (trailing-whitespace) source/python/dataset.rst:582: trailing whitespace (trailing-whitespace) source/python/dataset.rst:583: trailing whitespace (trailing-whitespace) source/python/dataset.rst:585: trailing whitespace (trailing-whitespace) source/python/dataset.rst:586: trailing whitespace (trailing-whitespace) source/python/dataset.rst:587: trailing whitespace (trailing-whitespace) source/python/dataset.rst:591: trailing whitespace (trailing-whitespace) source/python/dataset.rst:595: trailing whitespace (trailing-whitespace) source/python/dataset.rst:599: trailing whitespace (trailing-whitespace) source/python/dataset.rst:614: trailing whitespace (trailing-whitespace) source/python/dataset.rst:621: trailing whitespace (trailing-whitespace) source/python/dataset.rst:628: trailing whitespace (trailing-whitespace) source/python/dataset.rst:629: trailing whitespace (trailing-whitespace) source/python/dataset.rst:635: trailing whitespace (trailing-whitespace) source/python/dataset.rst:637: trailing whitespace (trailing-whitespace) source/python/dataset.rst:642: trailing whitespace (trailing-whitespace) source/python/dataset.rst:656: trailing whitespace (trailing-whitespace) source/python/dataset.rst:660: trailing whitespace (trailing-whitespace) source/python/dataset.rst:661: trailing whitespace (trailing-whitespace) source/python/dataset.rst:662: trailing whitespace (trailing-whitespace) source/python/dataset.rst:663: trailing whitespace (trailing-whitespace) source/python/dataset.rst:669: trailing whitespace (trailing-whitespace) source/python/dataset.rst:670: trailing whitespace (trailing-whitespace) source/python/dataset.rst:671: trailing whitespace (trailing-whitespace) source/python/dataset.rst:722: trailing whitespace (trailing-whitespace) source/python/getting_involved.rst:57: trailing whitespace (trailing-whitespace) source/python/getting_involved.rst:76: No newline at end of file. (missing-final-newline) source/python/dlpack.rst:93: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:54: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:55: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:65: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:66: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:80: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:132: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:144: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:161: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:162: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:163: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:182: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:184: trailing whitespace (trailing-whitespace) source/python/timestamps.rst:192: trailing whitespace (trailing-whitespace) source/python/filesystems.rst:236: trailing whitespace (trailing-whitespace) source/python/filesystems.rst:317: trailing whitespace (trailing-whitespace) source/python/ipc.rst:79: trailing whitespace (trailing-whitespace) source/python/ipc.rst:84: trailing whitespace (trailing-whitespace) source/python/ipc.rst:105: trailing whitespace (trailing-whitespace) source/python/ipc.rst:129: trailing whitespace (trailing-whitespace) source/python/ipc.rst:167: trailing whitespace (trailing-whitespace) source/python/parquet.rst:35: trailing whitespace (trailing-whitespace) source/python/api/compute.rst:55: trailing whitespace (trailing-whitespace) source/python/api/compute.rst:56: trailing whitespace (trailing-whitespace) source/python/api/compute.rst:57: trailing whitespace (trailing-whitespace) source/python/api/compute.rst:58: trailing whitespace (trailing-whitespace) source/python/api/substrait.rst:53: No newline at end of file. (missing-final-newline) source/python/integration/python_r.rst:32: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:55: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:94: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:99: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:192: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:222: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:264: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:277: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:292: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:296: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:301: trailing whitespace (trailing-whitespace) source/python/integration/python_r.rst:307: No newline at end of file. (missing-final-newline) source/java/quickstartguide.rst:198: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:199: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:200: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:201: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:309: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:310: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:311: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:312: OMG TABS!!!1 (horizontal-tab) source/java/quickstartguide.rst:316: No newline at end of file. (missing-final-newline) source/java/install.rst:64: trailing whitespace (trailing-whitespace) source/java/install.rst:77: trailing whitespace (trailing-whitespace) source/java/install.rst:78: trailing whitespace (trailing-whitespace) source/java/install.rst:63: found an unbalanced inline literal markup. (unbalanced-inline-literals-delimiters) source/java/jdbc.rst:98: Line ends with dangling hyphen (dangling-hyphen) source/java/jdbc.rst:174: Line ends with dangling hyphen (dangling-hyphen) source/java/jdbc.rst:175: Line ends with dangling hyphen (dangling-hyphen) source/java/flight.rst:187: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:23: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:28: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:39: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:44: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:47: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:51: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:57: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:60: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:62: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:75: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:79: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:81: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:86: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:87: trailing whitespace (trailing-whitespace) source/java/algorithm.rst:85: inline literal missing (escaped) space after literal: '``k``t' (missing-space-after-literal) source/java/algorithm.rst:85: found an unbalanced inline literal markup. (unbalanced-inline-literals-delimiters) source/java/algorithm.rst:85: found an unbalanced inline literal markup. (unbalanced-inline-literals-delimiters) source/java/flight_sql_jdbc_driver.rst:172: trailing whitespace (trailing-whitespace) source/java/flight_sql_jdbc_driver.rst:173: trailing whitespace (trailing-whitespace) source/java/substrait.rst:103: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:104: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:105: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:441: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:442: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:443: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:444: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:445: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:446: OMG TABS!!!1 (horizontal-tab) source/java/substrait.rst:447: OMG TABS!!!1 (horizontal-tab) source/cpp/getting_started.rst:27: trailing whitespace (trailing-whitespace) source/cpp/getting_started.rst:28: trailing whitespace (trailing-whitespace) source/cpp/getting_started.rst:30: trailing whitespace (trailing-whitespace) source/cpp/getting_started.rst:36: trailing whitespace (trailing-whitespace) source/cpp/getting_started.rst:37: trailing whitespace (trailing-whitespace) source/cpp/getting_started.rst:47: trailing whitespace (trailing-whitespace) source/cpp/getting_started.rst:48: trailing whitespace (trailing-whitespace) source/java/vector.rst:229: trailing whitespace (trailing-whitespace) source/java/vector.rst:243: trailing whitespace (trailing-whitespace) source/cpp/threading.rst:102: No newline at end of file. (missing-final-newline) source/java/memory.rst:23: trailing whitespace (trailing-whitespace) source/java/memory.rst:42: trailing whitespace (trailing-whitespace) source/java/memory.rst:70: trailing whitespace (trailing-whitespace) source/java/memory.rst:71: trailing whitespace (trailing-whitespace) source/java/memory.rst:72: trailing whitespace (trailing-whitespace) source/java/memory.rst:103: trailing whitespace (trailing-whitespace) source/java/memory.rst:104: trailing whitespace (trailing-whitespace) source/java/memory.rst:110: trailing whitespace (trailing-whitespace) source/java/memory.rst:111: trailing whitespace (trailing-whitespace) source/java/memory.rst:116: trailing whitespace (trailing-whitespace) source/java/memory.rst:117: trailing whitespace (trailing-whitespace) source/java/memory.rst:292: trailing whitespace (trailing-whitespace) source/java/memory.rst:373: trailing whitespace (trailing-whitespace) source/java/memory.rst:387: trailing whitespace (trailing-whitespace) source/java/memory.rst:388: trailing whitespace (trailing-whitespace) source/java/memory.rst:392: trailing whitespace (trailing-whitespace) source/java/memory.rst:393: trailing whitespace (trailing-whitespace) source/java/memory.rst:396: trailing whitespace (trailing-whitespace) source/java/memory.rst:397: trailing whitespace (trailing-whitespace) source/java/memory.rst:414: trailing whitespace (trailing-whitespace) source/java/memory.rst:339: Line ends with dangling hyphen (dangling-hyphen) source/java/memory.rst:343: Line ends with dangling hyphen (dangling-hyphen) source/cpp/build_system.rst:170: OMG TABS!!!1 (horizontal-tab) source/cpp/build_system.rst:50: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:32: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:33: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:45: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:46: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:48: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:53: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:54: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:55: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:56: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:57: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:58: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:60: trailing whitespace (trailing-whitespace) source/cpp/gandiva.rst:66: No newline at end of file. (missing-final-newline) source/cpp/tables.rst:84: trailing whitespace (trailing-whitespace) source/cpp/tables.rst:86: trailing whitespace (trailing-whitespace) source/cpp/tables.rst:90: trailing whitespace (trailing-whitespace) source/cpp/io.rst:94: No newline at end of file. (missing-final-newline) source/cpp/datatypes.rst:75: trailing whitespace (trailing-whitespace) source/cpp/datatypes.rst:76: trailing whitespace (trailing-whitespace) source/cpp/datatypes.rst:99: trailing whitespace (trailing-whitespace) source/cpp/datatypes.rst:131: trailing whitespace (trailing-whitespace) source/cpp/datatypes.rst:179: trailing whitespace (trailing-whitespace) source/cpp/datatypes.rst:186: trailing whitespace (trailing-whitespace) source/cpp/datatypes.rst:192: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:381: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:382: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:384: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:385: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:386: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:388: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:389: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:390: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:394: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:398: trailing whitespace (trailing-whitespace) source/cpp/dataset.rst:402: trailing whitespace (trailing-whitespace) source/cpp/flight.rst:353: trailing whitespace (trailing-whitespace) source/cpp/flight.rst:356: trailing whitespace (trailing-whitespace) source/cpp/examples/compute_and_write_example.rst:24: trailing whitespace (trailing-whitespace) source/cpp/examples/compute_and_write_example.rst:25: trailing whitespace (trailing-whitespace) source/cpp/examples/compute_and_write_example.rst:26: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:208: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:237: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:240: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:241: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:242: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:243: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:244: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:252: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:255: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:256: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:257: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:258: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:280: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:282: trailing whitespace (trailing-whitespace) source/cpp/memory.rst:357: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:54: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:55: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:70: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:109: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:110: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:177: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:194: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:195: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:196: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:269: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:272: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:273: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:275: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:278: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:279: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:282: trailing whitespace (trailing-whitespace) source/cpp/parquet.rst:562: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:114: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:149: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:152: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:155: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:158: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:161: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:164: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:167: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:170: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:173: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:176: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:179: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:182: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:185: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:187: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:190: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:193: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:196: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:199: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:203: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:206: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:211: trailing whitespace (trailing-whitespace) source/cpp/acero/substrait.rst:215: trailing whitespace (trailing-whitespace) source/cpp/acero/overview.rst:209: trailing whitespace (trailing-whitespace) source/cpp/acero/overview.rst:220: trailing whitespace (trailing-whitespace) source/cpp/acero/overview.rst:269: trailing whitespace (trailing-whitespace) source/cpp/acero/overview.rst:270: No newline at end of file. (missing-final-newline) source/cpp/gandiva/expr_projector_filter.rst:33: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:42: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:87: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:102: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:103: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:104: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:106: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:107: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:108: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:109: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:126: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:129: trailing whitespace (trailing-whitespace) source/cpp/gandiva/expr_projector_filter.rst:137: No newline at end of file. (missing-final-newline) source/cpp/api/array.rst:89: No newline at end of file. (missing-final-newline) source/cpp/api/scalar.rst:47: No newline at end of file. (missing-final-newline) source/cpp/gandiva/external_func.rst:82: trailing whitespace (trailing-whitespace) source/cpp/gandiva/external_func.rst:156: trailing whitespace (trailing-whitespace) source/cpp/gandiva/external_func.rst:159: trailing whitespace (trailing-whitespace) source/cpp/gandiva/external_func.rst:182: trailing whitespace (trailing-whitespace) source/cpp/gandiva/external_func.rst:203: trailing whitespace (trailing-whitespace) source/cpp/gandiva/external_func.rst:205: trailing whitespace (trailing-whitespace) source/cpp/gandiva/external_func.rst:206: trailing whitespace (trailing-whitespace) source/cpp/acero/developer_guide.rst:190: trailing whitespace (trailing-whitespace) source/cpp/acero/developer_guide.rst:274: trailing whitespace (trailing-whitespace) source/cpp/acero/developer_guide.rst:475: trailing whitespace (trailing-whitespace) source/cpp/tutorials/compute_tutorial.rst:37: trailing whitespace (trailing-whitespace) source/cpp/tutorials/compute_tutorial.rst:52: trailing whitespace (trailing-whitespace) source/cpp/tutorials/compute_tutorial.rst:56: trailing whitespace (trailing-whitespace) source/cpp/tutorials/compute_tutorial.rst:60: trailing whitespace (trailing-whitespace) source/cpp/tutorials/compute_tutorial.rst:61: trailing whitespace (trailing-whitespace) source/cpp/tutorials/compute_tutorial.rst:343: No newline at end of file. (missing-final-newline) source/cpp/tutorials/io_tutorial.rst:36: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:53: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:61: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:62: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:159: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:160: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:297: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:298: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:361: trailing whitespace (trailing-whitespace) source/cpp/tutorials/io_tutorial.rst:404: No newline at end of file. (missing-final-newline) source/cpp/tutorials/datasets_tutorial.rst:36: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:53: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:61: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:62: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:209: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:231: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:232: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:233: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:237: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:238: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:308: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:346: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:438: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:442: trailing whitespace (trailing-whitespace) source/cpp/tutorials/datasets_tutorial.rst:453: No newline at end of file. (missing-final-newline) source/format/CDeviceDataInterface.rst:692: No newline at end of file. (missing-final-newline) source/format/Integration.rst:504: trailing whitespace (trailing-whitespace) source/format/Integration.rst:511: trailing whitespace (trailing-whitespace) source/format/Integration.rst:552: trailing whitespace (trailing-whitespace) source/format/Integration.rst:566: trailing whitespace (trailing-whitespace) source/format/Integration.rst:504: missing underscore after closing backtick in hyperlink (missing-underscore-after-hyperlink) source/format/Glossary.rst:214: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:67: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:136: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:137: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:155: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:156: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:195: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:251: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:273: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:275: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:308: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:319: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:432: trailing whitespace (trailing-whitespace) source/format/CDataInterface/PyCapsuleInterface.rst:435: No newline at end of file. (missing-final-newline) source/developers/overview.rst:78: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:35: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:42: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:318: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:329: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:371: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:374: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:390: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:418: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:459: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:484: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:485: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:491: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:529: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:534: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:544: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:546: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:570: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:571: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:572: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:573: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:577: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:596: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:597: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:598: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:599: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:603: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:620: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:640: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:686: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:689: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:707: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:708: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:710: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:712: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:713: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:715: trailing whitespace (trailing-whitespace) source/cpp/acero/user_guide.rst:729: trailing whitespace (trailing-whitespace) source/developers/continuous_integration/index.rst:30: No newline at end of file. (missing-final-newline) source/developers/reviewing.rst:263: trailing whitespace (trailing-whitespace) source/developers/reviewing.rst:270: trailing whitespace (trailing-whitespace) source/developers/reviewing.rst:278: trailing whitespace (trailing-whitespace) source/developers/release.rst:83: trailing whitespace (trailing-whitespace) source/developers/release.rst:86: trailing whitespace (trailing-whitespace) source/developers/release.rst:146: trailing whitespace (trailing-whitespace) source/developers/release.rst:154: trailing whitespace (trailing-whitespace) source/developers/release.rst:167: trailing whitespace (trailing-whitespace) source/developers/release.rst:170: trailing whitespace (trailing-whitespace) source/developers/release.rst:173: trailing whitespace (trailing-whitespace) source/developers/release.rst:177: trailing whitespace (trailing-whitespace) source/developers/release.rst:183: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/index.rst:28: No newline at end of file. (missing-final-newline) source/developers/guide/index.rst:86: trailing whitespace (trailing-whitespace) source/developers/guide/index.rst:90: trailing whitespace (trailing-whitespace) source/developers/guide/index.rst:94: trailing whitespace (trailing-whitespace) source/developers/guide/index.rst:96: trailing whitespace (trailing-whitespace) source/developers/guide/index.rst:158: trailing whitespace (trailing-whitespace) source/developers/guide/architectural_overview.rst:32: trailing whitespace (trailing-whitespace) source/developers/guide/architectural_overview.rst:33: trailing whitespace (trailing-whitespace) source/developers/guide/documentation.rst:52: trailing whitespace (trailing-whitespace) source/developers/guide/resources.rst:81: trailing whitespace (trailing-whitespace) source/developers/guide/communication.rst:30: trailing whitespace (trailing-whitespace) source/developers/guide/communication.rst:53: trailing whitespace (trailing-whitespace) source/developers/guide/step_by_step/finding_issues.rst:68: trailing whitespace (trailing-whitespace) source/developers/guide/step_by_step/styling.rst:62: No newline at end of file. (missing-final-newline) source/developers/guide/step_by_step/set_up.rst:121: OMG TABS!!!1 (horizontal-tab) source/developers/guide/step_by_step/set_up.rst:122: OMG TABS!!!1 (horizontal-tab) source/developers/guide/step_by_step/set_up.rst:123: OMG TABS!!!1 (horizontal-tab) source/developers/guide/step_by_step/set_up.rst:124: OMG TABS!!!1 (horizontal-tab) source/developers/guide/step_by_step/set_up.rst:63: trailing whitespace (trailing-whitespace) source/developers/guide/step_by_step/arrow_codebase.rst:102: OMG TABS!!!1 (horizontal-tab) source/developers/guide/step_by_step/arrow_codebase.rst:103: OMG TABS!!!1 (horizontal-tab) source/developers/guide/tutorials/python_tutorial.rst:140: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:150: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:153: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:281: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:306: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:311: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:316: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:318: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:323: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:342: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:433: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:451: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:454: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:456: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:481: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:484: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:493: trailing whitespace (trailing-whitespace) source/developers/guide/tutorials/python_tutorial.rst:530: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:52: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:53: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:575: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:576: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:577: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:584: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:586: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:590: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:591: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:592: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:595: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:596: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:637: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:638: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1624: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1625: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1626: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1627: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1628: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1629: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1652: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1653: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1864: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1866: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1880: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1881: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1882: trailing whitespace (trailing-whitespace) source/cpp/compute.rst:1883: trailing whitespace (trailing-whitespace) source/developers/cpp/windows.rst:382: trailing whitespace (trailing-whitespace) source/developers/cpp/windows.rst:384: trailing whitespace (trailing-whitespace) source/developers/cpp/building.rst:70: trailing whitespace (trailing-whitespace) source/developers/cpp/building.rst:102: trailing whitespace (trailing-whitespace) source/developers/cpp/building.rst:365: trailing whitespace (trailing-whitespace) source/developers/cpp/building.rst:378: trailing whitespace (trailing-whitespace) source/developers/cpp/building.rst:475: trailing whitespace (trailing-whitespace) ``` </details> It mostly found trailing whitespace issues but I am going to look into the other ones they do what we want. After that I'll work up a PR that, 1. Adds this to the docs CI 2. Adds it to our arrow-docs conda env file so developers have access to it 3. Make a note of it in the docs for building the docs so developers know to run it 4. Look into whether it makes sense to run it locally automatically (i.e., when we call make html) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
