Commit Graph
21 Commits
Author SHA1 Message Date
Miklos Vajna 5f5f093754 clang-format: improve error message when CI fails
Don't just tell the problem but hint how to fix it.

Change-Id: I9d079ee7d4ed61266e22a3fa21efe10366724645
Reviewed-on: https://gerrit.libreoffice.org/49471
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2018-02-09 13:06:17 +01:00
Miklos Vajna 0623f3a8f5 git pre-commit hook: catch copy&pasted author identity
git log --author="Your"

confirms that this happens in practice.

Change-Id: I48633bc9154ebc66fc022938831057bdc3ff76b3
Reviewed-on: https://gerrit.libreoffice.org/47892
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Michael Meeks <michael.meeks@collabora.com>
2018-01-15 11:08:26 +01:00
Miklos Vajna 653b513181 clang-format: restore lost warning on touching formatted file without check
Consistently only assign something to $clang_format if it's a good
version, and also consistently return undef if we found no good version.

Change-Id: Iadbbb56a5c15dfaeec5c80e3cc8fcc78b787c04b
Reviewed-on: https://gerrit.libreoffice.org/46489
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-12-15 09:02:17 +01:00
Miklos Vajna 2e4ecd03d6 clang-format: ignore not staged hunks
09:28 <@sberg> vmiklos, I think I ran into a scenario last night where I had
both `git add`-ed and non-added changes in a non-blacklisted file, and the
non-added changes violated clang-format (and the added ones did not), and the
commit hook complained

So make sure we validate the index version, not the filesystem one.

(And modify a formatted file to trigger CI validation of the hook change
itself.)

Change-Id: I6431b35ac50dd03741104b5709c5195d6ff28632
Reviewed-on: https://gerrit.libreoffice.org/46368
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-12-13 13:44:23 +01:00
Miklos Vajna 46ab76a709 git-hooks: fix pre-commit in submodules
translations.git failed with "Can't locate ClangFormat.pm in @INC (you
may need to install the ClangFormat module)".

Change-Id: Ibbe051c1cb4c1200da58821589b8271434b1f9a6
Reviewed-on: https://gerrit.libreoffice.org/45020
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-11-21 11:16:11 +01:00
Miklos Vajna 13de75274b clang-format: enforce coding style via Jenkins
- factor out common code to a shared module, and quote path to the
  clang-format binary, just in case.
- add a new check-last-commit script that is the CI equivalent of the
  exiting git pre-commit hook, but this one handles lack of clang-format
  as an error, not as a warning.
- $LODE_HOME/opt/bin is supposed to be in PATH already, so not
  mentioning LODE_HOME in ClangFormat::find() explicitly.
- if both COMPILER_PLUGINS and LODE_HOME is set, invoke
  solenv/clang-format/check-last-commit as part of 'make check'

To test these changes as part of CI, fix a single style violation in an
already committed, non-blacklisted file.

This depends on the lode.git commit
496123bcae28e06c6d6aeda39a5afd1e1fb1fd98 (utils_Linux: install
clang-format in the Jenkins case, 2017-11-16), otherwise erroring out on
a not installed clang-format as part of the build would be a problem.

Change-Id: Ib3110826194ff78a7f1bed1c3796147e92ccb3ba
Reviewed-on: https://gerrit.libreoffice.org/44939
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-11-20 13:41:40 +01:00
Miklos Vajna ea5339e31c git-hooks: mention download link for clang-format when warning about it
Change-Id: I99f2154bb3d15fe4a99c1d27ca20756e1fb31cec
Reviewed-on: https://gerrit.libreoffice.org/44810
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-11-16 20:24:46 +01:00
Stephan Bergmann c74f6d3c64 Warn when commit touches new files, but no suitable clang-format is found
Change-Id: Ifd254c30b8aecf6e7aec00bbfc8522a91bfa0909
2017-11-16 09:53:33 +01:00
Stephan Bergmann e61a1b8dd8 First look for clang-format in CLANG_FORMT env var
Change-Id: I5de5c6f3e8be1d40c03cbddb9d2f4414b9a5791b
2017-11-13 11:59:08 +01:00
Miklos Vajna 53e13b256f clang-format: standardize on 5.0.0
Restrict the git hook further to only enforce style in case the found
clang-format binary's version matches to avoid output differences with
different clang-format version.

While at it, move the blacklist reading after the version check to speed
up committing a bit when no local enforcement happens.

Also add a simple script to list formatted files, since the blacklist is
large enough that doing it naively from the shell is too slow.

Change-Id: I0bc05961d262cc6bc91c6efdd1b91994ecfc6940
Reviewed-on: https://gerrit.libreoffice.org/44662
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
2017-11-13 10:43:39 +01:00
Miklos Vajna 98f5f4d39c Enforce coding style with clang-format for new code
- The actual blacklist has to be generated with
  solenv/clang-format/generate-style-blacklist.sh in a separate commit.

- .clang-format is from
  <https://lists.freedesktop.org/archives/libreoffice/2014-August/062802.html>,
  except:

  - the commented out lines are removed
  - Standard is Cpp11 instead of Cpp03
  - explicitly avoid sorting includes (requested during ESC meeting
    2017-10-11)
  - no indentation inside namespaces (lots of existing code in sc wants this)

- The git hooks prints a diff when the style is violated, along with a
  command to fix up the violation automatically. It also enforces style
  only in new files and ignores all files listed in the blacklist.

- To avoid introducing one more hard-to-setup build dependency for new
  developers, help them two ways:

  - if clang-format is not installed, provide pre-built binaries for
    Linux/Windows/macOS

  - download/install of these binaries are printed as cmdline
    instructions, similar to how we have our own 'make' on Windows

- As per ESC call 2017-11-02, currently don't do any checks if
  clang-format is not installed (as a first step).

Change-Id: Iaa139c396337e8734aa1853305d808438260c41a
Reviewed-on: https://gerrit.libreoffice.org/43736
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
2017-11-03 09:29:11 +01:00
Michael Stahl 236b7e19bb git-hooks: don't complain about large .ui files
Looks legit.

Change-Id: I73562d0a8d863868ae717cee97b6497a93df4ee4
2017-10-30 10:51:32 +01:00
Samuel Mehrbrodt ecdf8f2803 pre-commit-hook: Also check xsl files for whitespace and tabs
Change-Id: Ibc1520735ab20787496564e8561a6bb5920a5538
Reviewed-on: https://gerrit.libreoffice.org/42280
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
2017-09-20 16:12:11 +02:00
Caolán McNamara 354d460af2 insist in a domain in .ui files
and just check .ui files for those .ui-specific patterns

Change-Id: If7b9c8779f7592db5b22ab96058dd85666ca9bdf
Reviewed-on: https://gerrit.libreoffice.org/42160
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-09-11 15:01:41 +02:00
Caolán McNamara 3fa79c0fa5 disallow .ui translatable entries without context at checkin
Change-Id: Iece6ae3c4eabad4cd113f469495d2c42833a7b92
Reviewed-on: https://gerrit.libreoffice.org/42157
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2017-09-11 12:56:12 +02:00
Samuel Mehrbrodt 50f3cfc1fa git pre-commit hook: Also check swift files
Change-Id: I60c7ccd06b104c6a6ae5e7985fe8c3215f7e97d4
Reviewed-on: https://gerrit.libreoffice.org/35624
Reviewed-by: jan iversen <jani@libreoffice.org>
Tested-by: jan iversen <jani@libreoffice.org>
2017-03-24 09:41:54 +00:00
Marina Latini 4f92098da7 tdf#102784 - Enhance git pre-commit hook
This pre-commit hook prevents the commit of ui files with tooltip_markup property

Change-Id: I70d6f90fc36e782c290f35f0cc9415b9fa96495b
Signed-off-by: Marina Latini <marina@studiostorti.com>
Reviewed-on: https://gerrit.libreoffice.org/31735
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Muhammet Kara <muhammet.kara@pardus.org.tr>
Tested-by: Muhammet Kara <muhammet.kara@pardus.org.tr>
Reviewed-by: jan iversen <jani@documentfoundation.org>
2016-12-08 10:01:50 +00:00
Thorsten Behrens 8f45f78e82 Catch funny line-ends in pre-commit hook.
Change-Id: I38836a9b3c9fb8ab7b71e157bba8a803eb4d3905
2015-06-13 10:41:39 +02:00
Miklos Vajna 66fce1f61e git pre-commit hook: block large files
Change-Id: Id27cfa805fc7cd0f4f6cc3d8bb770aa7abd536e1
2014-05-16 16:54:20 +02:00
Caolán McNamara d21eb6bc91 add hook to block use of markup in .ui files
Change-Id: Ia7eed5e9e1f8fba9876730e909461dabc167deb9
2012-10-26 12:58:56 +01:00
Norbert Thiebaud 9152c42a65 submodules migration
Change-Id: Ib3e472a4b1abf880f695be7a6667393d6a82f10d
2012-10-16 11:28:26 -05:00