Skip to content

Improve update summary usability #4395

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

Merged
merged 9 commits into from
Sep 8, 2023

Conversation

EvaristeGalois11
Copy link
Contributor

@EvaristeGalois11 EvaristeGalois11 commented Jun 18, 2023

Impact

  • Bug fix (non-breaking change which fixes expected existing functionality)
  • Enhancement/New feature (adds functionality without impacting existing logic)
  • Breaking change (fix or feature that would cause existing functionality to change)

Description

Hi, I changed a bit the way the summary logs works because it was a bit ugly the way it rendered in a Spring application for example. I made a few small changes that are somewhat unrelated to this PR so let me know if you prefer to split them on their own proper PR.

This is what I've done:

  • Skipped changesets are propagated to the changelog that includes them. I've done this mostly because I wanted to see the skipped changesets summary but couldn't quite understand why it wasn't produced. It seems that changesets included in other changelogs with the include or includeAll directive aren't considered for the summary recap. The fix is very simple this is why I'm including it in this PR, but if you think it isn't necessary or it needs more polishing I can branch it to a separate PR.
  • Clean up the summary recap logged. In general it isn't necessary to include new lines in logged string because log aggregators can take care of collecting and presenting logs in the best way possible. This is why I removed the new line from the logged string, but still preserving them in the strings outputted to the standard output where new lines could be necessary.
  • Remove the outputted summary recap unless the VERBOSE option is selected. This will partially mitigate Disable console logs for every changeset #2396 (comment) in the sense that by default the summary isn't spammed on the standard output anymore, but one have to opt in with the VERBOSE option. I don't know if it's considered a breaking changes, but this is the reason I selected the breaking checkbox above.
  • Add the showSummary parameter to Maven and Spring.

Things to be aware of

I didn't manage to run the tests so I don't know what it's broken and needs to be fixed. I would ask you to help a bit understanding what tests should be changed and if it's necessary to add new ones thanks.

Things to worry about

Additional Context

Sorry if it's a bit messy as a PR but it started with something totally unrelated and I ended up with a somewhat semi functional PR.

@MalloD12
Copy link
Collaborator

MalloD12 commented Jul 4, 2023

Hi @EvaristeGalois11, I have seen there are a few command tests failing:

Screenshot 2023-07-04 at 1 57 36 PM

I'll see if I can find out what's wrong with these files not being written. In case you are keen to debug/fix these tests the easiest way I found is by creating a test directory and placing there the update.test.groovy (here are the ones failing), then set the path variable pointing to your test directory on the getCommandTestDefinitions() (CommandTests.groovy).

As you can see on the screenshot posted there are a few tests failing because for some reason command test execution is not writing the command execution result on the expected outputFile file (for example target/test-classes/ignoredChangeset.txt.

Thanks,
Daniel.

@EvaristeGalois11
Copy link
Contributor Author

Thank you very much @MalloD12 for the help, I'll try to do what you say and fix these tests!

writer.flush();
} catch (IOException ioe) {
throw new LiquibaseException(ioe);
if (verbose) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Earlier talking with a team member he pointed out this is the piece that is making fail a couple of update tests (update, updateCount and updateToTag) where a showSummary is set with a different value than verbose and this is causing to not make write the command execution result. Could you please take a look at this?

Thanks,
Daniel.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, I changed the level to verbose to all the failing tests and now they are working!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think fixing the tests this way is alright, but I am still not sure this IF block is totally accurate because we have already seen with the previously failing tests that when showSummary != verbose output won't be written.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's because the summary logs are being outputted to the "standard" log (I don't how you call it sorry) with Scope.getCurrentScope().getLog(ShowSummaryUtil.class).info() and printed directly to the standard output. The if remove the printing to the standard output, but not to the standard log. The test is set up to redirect the standard output to the file, so unless it is set to verbose it seems to not write anything.

Should I try to redirect the standard log to the file to check if it's logging correctly? Are there already places where it's done so I can copy them?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll answer myself: it wasn't at all difficult thanks to the expectedLogs property.

I added to the update.test all the summary and verbose level tests to ensure that they behaves correctly. Does this resolve your doubts @MalloD12? I can update the updateCount.test and updateToTag.test too if you think it's fine.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @EvaristeGalois11, thank you for updating these tests. I think it would be nice to update the others as well to keep them consistent, but let me check with somebody else from the team to double-check others are happy with it as well. I'll get back to you soon.

@EvaristeGalois11
Copy link
Contributor Author

Sorry for taking this long @MalloD12 but I managed to catch a cold in the middle of summer lol.

Anyway after a fierce battle with intellij I successfully fixed the failing tests.

I tried adding a test case for the skipped changesets but I'm not sure if it's the right way to do it.

The Spring and maven test classes are all commented out so I didn't touch them.

@MalloD12
Copy link
Collaborator

One more thing, could you please tell/show me how are you using showSummary in Spring? I'm not very familiar with it and when trying to set this like:

spring.liquibase.showSummary=verbose

this is the output I'm getting:

Binding to target [Bindable@7bde1f3a type = org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties, value = 'provided', annotations = array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(value=spring.liquibase, prefix=spring.liquibase, ignoreUnknownFields=false, ignoreInvalidFields=false)]] failed:

    Property: spring.liquibase.showsummary
    Value: verbose
    Origin: class path resource [application.properties]:3:30
    Reason: The elements [spring.liquibase.showsummary] were left unbound.

@EvaristeGalois11
Copy link
Contributor Author

One more thing, could you please tell/show me how are you using showSummary in Spring? I'm not very familiar with it and when trying to set this like:

spring.liquibase.showSummary=verbose

this is the output I'm getting:

Binding to target [Bindable@7bde1f3a type = org.springframework.boot.autoconfigure.liquibase.LiquibaseProperties, value = 'provided', annotations = array<Annotation>[@org.springframework.boot.context.properties.ConfigurationProperties(value=spring.liquibase, prefix=spring.liquibase, ignoreUnknownFields=false, ignoreInvalidFields=false)]] failed:

    Property: spring.liquibase.showsummary
    Value: verbose
    Origin: class path resource [application.properties]:3:30
    Reason: The elements [spring.liquibase.showsummary] were left unbound.

For now you need to manually set it because Spring doesn't know about this property, like this:

@Configuration
public class ShowSummaryConfiguration implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(@NonNull Object bean, @NonNull String beanName)
            throws BeansException {
        if (bean instanceof SpringLiquibase springLiquibase) {
            springLiquibase.setShowSummary(UpdateSummaryEnum.VERBOSE);
        }
        return bean;
    }
}

If this PR is accepted I'm planning to try to investigate the issue that is currently blocking Spring from updating the liquibase version #4135, and after that I can submit a PR to spring boot for managing this new property :D

@MalloD12
Copy link
Collaborator

Thank you @EvaristeGalois11, I'll do my best to complete my round of Spring testing on Monday, so then we can move forward with this. In the meantime, if you are with that you can do the same updates on the other test files as you did for update.

Thanks,
Daniel.

@MalloD12
Copy link
Collaborator

Hi @EvaristeGalois11,

At the moment, I'm performing a bit of testing around these changes and seeing a few things I would like to share with you. When running an update command setting show-summary = verbose I can see below output:

java.io.IOException: Stream closed
	at java.io.BufferedInputStream.getBufIfOpen(BufferedInputStream.java:170)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:336)
	at java.io.FilterInputStream.read(FilterInputStream.java:107)
	at liquibase.change.core.ExecuteShellCommandChange$StreamGobbler.copy(ExecuteShellCommandChange.java:424)
	at liquibase.change.core.ExecuteShellCommandChange$StreamGobbler.finish(ExecuteShellCommandChange.java:414)
	at liquibase.change.core.ExecuteShellCommandChange.executeCommand(ExecuteShellCommandChange.java:203)
	at liquibase.change.core.ExecuteShellCommandChange$1.generate(ExecuteShellCommandChange.java:144)
	at liquibase.sqlgenerator.core.RuntimeGenerator.generateSql(RuntimeGenerator.java:18)
	at liquibase.sqlgenerator.core.RuntimeGenerator.generateSql(RuntimeGenerator.java:9)
	at liquibase.sqlgenerator.SqlGeneratorChain.generateSql(SqlGeneratorChain.java:32)
	at liquibase.sqlgenerator.SqlGeneratorFactory.generateSql(SqlGeneratorFactory.java:224)
	at liquibase.executor.AbstractExecutor.applyVisitors(AbstractExecutor.java:104)
	at liquibase.executor.jvm.JdbcExecutor.access$400(JdbcExecutor.java:39)
	at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:440)
	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:76)
	at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:179)
	at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1291)
	at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1273)
	at liquibase.changelog.ChangeSet.execute(ChangeSet.java:725)
	at liquibase.changelog.visitor.UpdateVisitor.executeAcceptedChange(UpdateVisitor.java:121)
	at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:70)
	at liquibase.changelog.ChangeLogIterator$2.lambda$run$0(ChangeLogIterator.java:110)
	at liquibase.Scope.lambda$child$0(Scope.java:197)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:196)
	at liquibase.Scope.child(Scope.java:175)
	at liquibase.Scope.child(Scope.java:263)
	at liquibase.changelog.ChangeLogIterator$2.run(ChangeLogIterator.java:100)
	at liquibase.Scope.lambda$child$0(Scope.java:197)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:196)
	at liquibase.Scope.child(Scope.java:175)
	at liquibase.Scope.child(Scope.java:263)
	at liquibase.Scope.child(Scope.java:267)
	at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:74)
	at liquibase.command.core.AbstractUpdateCommandStep.lambda$run$0(AbstractUpdateCommandStep.java:84)
	at liquibase.Scope.lambda$child$0(Scope.java:197)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:196)
	at liquibase.Scope.child(Scope.java:175)
	at liquibase.command.core.AbstractUpdateCommandStep.run(AbstractUpdateCommandStep.java:83)
	at liquibase.command.core.UpdateCommandStep.run(UpdateCommandStep.java:98)
	at liquibase.command.CommandScope.execute(CommandScope.java:213)
	at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:55)
	at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:24)
	at picocli.CommandLine.executeUserObject(CommandLine.java:2041)
	at picocli.CommandLine.access$1500(CommandLine.java:148)
	at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)
	at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)
	at picocli.CommandLine.execute(CommandLine.java:2170)
	at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$2(LiquibaseCommandLine.java:381)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:182)
	at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$3(LiquibaseCommandLine.java:356)
	at liquibase.Scope.child(Scope.java:206)
	at liquibase.Scope.child(Scope.java:182)
	at liquibase.integration.commandline.LiquibaseCommandLine.execute(LiquibaseCommandLine.java:354)
	at liquibase.integration.commandline.LiquibaseCommandLine.main(LiquibaseCommandLine.java:94)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at liquibase.integration.commandline.LiquibaseLauncher.main(LiquibaseLauncher.java:107)
Running Changeset: changelog/changelog-1.xml::drop_all_foreign_keys::abuschka
Running Changeset: changelog/changelog-1.xml::output messages::nvoxland
Message using default target
Message using default target
Message using stderr target
Message using stderr target
Running Changeset: changelog/changelog-1.xml::fkexists-without-table-setup::example
Message using stdout target
Message using stdout target
Running Changeset: changelog/changelog-1.xml::example::view-if-exists

UPDATE SUMMARY
Run:                         62
Previously run:               0
Filtered out:                 3
-------------------------------
Total change sets:           65


FILTERED CHANGE SETS SUMMARY
DBMS mismatch:                3

+-----------------------------------------------------------+------------------------------------------+
| Changeset Info                                            | Reason Skipped                           |
+-----------------------------------------------------------+------------------------------------------+
| changelog/changelog-1.xml::CORE-381::ssantoro             | mismatched DBMS value of 'msql'          |
+-----------------------------------------------------------+------------------------------------------+
| changelog/changelog-1.xml::modifySqlWithContext::nvoxland | mismatched DBMS value of 'h2, mysql'     |
+-----------------------------------------------------------+------------------------------------------+
| changelog/changelog-1.xml::nvarchartest::nvoxland         | mismatched DBMS value of 'oracle, mssql' |
+-----------------------------------------------------------+------------------------------------------+
Liquibase: Update has been successful.
Liquibase command 'update' was executed successfully.

Having set show-summary = summary there is not details of the update command about how many changesets have been executed, filtered, etc. See below screenshot:
Screenshot 2023-07-17 at 11 55 26 AM

I think it's good to stop displaying duplicate data on logs, but I don't think only verbose mode should displays update command details because if that is the case I think having a summary option wouldn't make any sense.

Can you please look at this?

Thanks,
Daniel.

@EvaristeGalois11
Copy link
Contributor Author

EvaristeGalois11 commented Jul 17, 2023

Could you @MalloD12 share a minimal project of what you're doing to receive that exception? I actually only use liquibase through the Spring integration so it would be really helpful if you can show me how you're testing it to reproduce that problem thanks.

On to the duplicate logs issue, the current implementation is reporting the update summary both on the log and on the output stream. I understand that your case is of a project that doesn't make use of the standard logger, but just reading the standard output (correct me if I'm wrong of course). This way at summary level nothing is being shown which is basically equivalent to a none level. The problem is that if I add the summary recap to the output stream, the problem complained in #2396 (comment) won't be addressed because of the double logging.

Maybe we should add a new setting to let the user choose which one they prefer? Because otherwise I can't think of any other way to resolve this redundant log: only logging with the standard logger wil make the people that don't use a logger not happy not seeing anything, but using the output stream directly will make the people that use a custom logger not happy because it will mess up their console. Something like showSummaryOutput=[LOG|CONSOLE|BOTH(default to preserve backwards compatibility)]? (I'm terrible with naming sorry lol)

ETA: Or we could just use the ConsoleUIService to log instead of this standard log and output stream like the Running changeset: ... messages are doing for example. By default it will output everything on stout, but it isn't hard to configure a proper logger with Scope.enter(). What do you think @MalloD12 ? Could this be a viable option?

@MalloD12
Copy link
Collaborator

I could reproduce the same output from a spring demo project I'm using and also from liquibase project (master branch). I'm attaching here the spring log (see VerboseOutput.txt) I got from this execution, plus the changelog (see
changelog.txt
) I'm using so you can try the same if you wish.

Regarding the duplicated log issue, let me check and discuss it with another team member and I'll get back to you once I get an answer.

Thanks,
Daniel.

@EvaristeGalois11
Copy link
Contributor Author

I'm afraid I can't seem to be able to reproduce that java.io.IOException: Stream closed, for me everything works fine but maybe it's because I'm missing something. This is the project that I'm using liquibase-exception.zip

Judging from the stack trace only, could it be a bug in the ExecuteShellCommandChange?

@MalloD12
Copy link
Collaborator

Hi @EvaristeGalois11,

I've been discussing these changes with some other team members and we think we should revert the below change from the ShowSummaryUtil class:

if (verbose) {
            try {
                Writer writer = createOutputWriter(outputStream);
                writer.append(builder.toString());
                writer.flush();
            } catch (IOException ioe) {
                throw new LiquibaseException(ioe);
            }
}

Because of this as we were discussing previously it changes the current behaviour of the different show-summary configurations we have at the moment (OFF, SUMMARY, and VERBOSE). I think what you mentioned yesterday about adding a new configuration (showSummaryOutput) to select what we want to use for outputting update execution results. I think adding that new configuration would help us to solve the duplicate logging issue in a more generic way. Would you be happy to implement that?

Thanks,
Daniel.

@EvaristeGalois11
Copy link
Contributor Author

I'm more than happy to work on the new configuration. I will probably need a bit of time to understand how the whole flow works, but I'll try my best to do it asap.

Do you @MalloD12 prefer to open a new PR for this new configuration or can i keep working on this one?

@MalloD12
Copy link
Collaborator

I think it would be preferable to create a separate PR for it. As I understand it would help us to solve issue #2396. I also think it would be good to test this PR having those changes so we can see how content output behaves for the different show-summary configurations. Would you mind putting this one on hold until we have that?

Thank you for all the work you are doing here!! 🙇‍♂️

Regards,
Daniel.

@EvaristeGalois11
Copy link
Contributor Author

EvaristeGalois11 commented Jul 29, 2023

Hi @MalloD12,
I finally found the time to implement the showSummaryOutput parameter and I opened a new PR like you said #4574.
I hope you can follow me there too, I really appreciate all the support you're giving me :D

Regarding this PR instead, I completely reverted every change to the ShowSummaryUtil class to avoid making a messy merge with the new PR. I updated the description accordingly.

@MalloD12
Copy link
Collaborator

Hi @MalloD12, I finally found the time to implement the showSummaryOutput parameter and I opened a new PR like you said #4574. I hope you can follow me there too, I really appreciate all the support you're giving me :D

Regarding this PR instead, I completely reverted every change to the ShowSummaryUtil class to avoid making a messy merge with the new PR. I updated the description accordingly.

Hi @EvaristeGalois11,

Thanks so much for all your hard work to improve this feature. I'll start looking into this today. Any questions I might have I'll keep you posted.

Daniel.

Copy link
Collaborator

@MalloD12 MalloD12 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved.

Review and testing results:

This PR is adding support for show-summary for Spring extension, plus some usability improvements. Part of the original scope of this PR has been updated as @EvaristeGalois11 kindly created another PR to improve show-summary usability (see #4574 ).

Code changes look good to me. Build and all tests have been successfully executed cloning this PR in a separate branch.

Again, thank you @EvaristeGalois11 for all your support with these changes.

Thanks,
Daniel.

Things to be aware of:

  • None

Things to worry about:

  • None

@MalloD12 MalloD12 merged commit 4e3a2d6 into liquibase:master Sep 8, 2023
@EvaristeGalois11 EvaristeGalois11 deleted the summary-log branch September 10, 2023 09:32
@EvaristeGalois11
Copy link
Contributor Author

Thank you @MalloD12 for your kind words and everybody involved with these two PRs for merging them. I'm really proud of my newly acquired contributor badge! Looking forward to the next release 🚀

sassasayu added a commit to sassasayu/liquibase that referenced this pull request Sep 13, 2023
* Run only the `Build & Test(Java)` and `integration-tests` on every PR

* remove copy-pasted needs section

* using latestMergeSha

* updated README and step name

* comment build.yml

* using pull_request_target for forked PRs

* using pull_request for forked PRs

* using authorize step

* publish commitsha-SNPAHSOT in branch-builds

* Trigger functional tests on label runFunctionalTests for a PR

* formatting

* formatting

* formatting

* use GITHUB_TOKEN

* added a new org secret to RUN_FUNCTIONAL_TESTS

* change the name of the event-ype for reposiotry disptach to run-functional-tests

* Fix poor performance of listunrunchangesets (liquibase#4798)

* Do not call normalizePath inside the loop for the same variable + just call it if everything else is fine.

* Update new-build.yml

Signed-off-by: sassasayu <[email protected]>

* Update new-build.yml

Signed-off-by: sassasayu <[email protected]>

* Bump com.microsoft.sqlserver:mssql-jdbc from 12.2.0.jre8 to 12.4.1.jre8 (liquibase#4793)

Bumps [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) from 12.2.0.jre8 to 12.4.1.jre8.
- [Release notes](https://github.com/Microsoft/mssql-jdbc/releases)
- [Changelog](https://github.com/microsoft/mssql-jdbc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Microsoft/mssql-jdbc/commits)

---
updated-dependencies:
- dependency-name: com.microsoft.sqlserver:mssql-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* logic for matching branch in OSS and Pro

* testing

* run on push to all branches

* Fixed: liquibase#4682 - MSSQL: Doesn't support (n CHAR) syntax, but only (n) syntax (liquibase#4683)

* Fixed: liquibase#4682 - MSSQL: Doesn't support (n CHAR) syntax, but only (n) syntax.

* Char and varchar with parameters tests added.

---------

Co-authored-by: Daniel Mallorga <[email protected]>

* Bump targetMavenVersion from 3.9.2 to 3.9.4 (liquibase#4601)

Bumps `targetMavenVersion` from 3.9.2 to 3.9.4.

Updates `org.apache.maven:maven-plugin-api` from 3.9.2 to 3.9.4
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](apache/maven@maven-3.9.2...maven-3.9.4)

Updates `org.apache.maven:maven-core` from 3.9.2 to 3.9.4
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](apache/maven@maven-3.9.2...maven-3.9.4)

Updates `org.apache.maven:maven-artifact` from 3.9.2 to 3.9.4
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](apache/maven@maven-3.9.2...maven-3.9.4)

Updates `org.apache.maven:maven-compat` from 3.9.2 to 3.9.4
- [Release notes](https://github.com/apache/maven/releases)
- [Commits](apache/maven@maven-3.9.2...maven-3.9.4)

---
updated-dependencies:
- dependency-name: org.apache.maven:maven-plugin-api
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.maven:maven-core
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.maven:maven-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.maven:maven-compat
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.junit:junit-bom from 5.9.3 to 5.10.0 (liquibase#4767)

Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.9.3 to 5.10.0.
- [Release notes](https://github.com/junit-team/junit5/releases)
- [Commits](junit-team/junit5@r5.9.3...r5.10.0)

---
updated-dependencies:
- dependency-name: org.junit:junit-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump com.h2database:h2 from 2.2.220 to 2.2.222 (liquibase#4828)

Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.2.220 to 2.2.222.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](h2database/h2database@version-2.2.220...version-2.2.222)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump liquibase/build-logic from 0.3.8 to 0.4.0 (liquibase#4727)

Bumps [liquibase/build-logic](https://github.com/liquibase/build-logic) from 0.3.8 to 0.4.0.
- [Release notes](https://github.com/liquibase/build-logic/releases)
- [Commits](liquibase/build-logic@v0.3.8...v0.4.0)

---
updated-dependencies:
- dependency-name: liquibase/build-logic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump net.snowflake:snowflake-jdbc from 3.14.0 to 3.14.1 (liquibase#4747)

Bumps [net.snowflake:snowflake-jdbc](https://github.com/snowflakedb/snowflake-jdbc) from 3.14.0 to 3.14.1.
- [Release notes](https://github.com/snowflakedb/snowflake-jdbc/releases)
- [Changelog](https://github.com/snowflakedb/snowflake-jdbc/blob/master/CHANGELOG.rst)
- [Commits](snowflakedb/snowflake-jdbc@v3.14.0...v3.14.1)

---
updated-dependencies:
- dependency-name: net.snowflake:snowflake-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixes JdbcExecutor's uses of RawParameterizedSqlStatement (liquibase#4589)

Adds a private method, setParameters, to set parameters from RawParameterizedSqlStatement to PreparedStatement.
Replaces parameters loop in execute with setParameters.
Replaces parameters loop in query with setParameters.

Co-authored-by: Andrew Simmons <[email protected]>

* Update README link to contribution docs (liquibase#4841)

update link to contribution docs

* Bump org.testcontainers:testcontainers-bom from 1.18.3 to 1.19.0 (liquibase#4710)

Bumps [org.testcontainers:testcontainers-bom](https://github.com/testcontainers/testcontainers-java) from 1.18.3 to 1.19.0.
- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)
- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)
- [Commits](testcontainers/testcontainers-java@1.18.3...1.19.0)

---
updated-dependencies:
- dependency-name: org.testcontainers:testcontainers-bom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* include tag in history tabular output (DAT-15244) (liquibase#4805)

* Bump info.picocli:picocli from 4.7.4 to 4.7.5 (liquibase#4768)

Bumps [info.picocli:picocli](https://github.com/remkop/picocli) from 4.7.4 to 4.7.5.
- [Release notes](https://github.com/remkop/picocli/releases)
- [Changelog](https://github.com/remkop/picocli/blob/main/RELEASE-NOTES.md)
- [Commits](remkop/picocli@v4.7.4...v4.7.5)

---
updated-dependencies:
- dependency-name: info.picocli:picocli
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Allow update command to handle additional properties that are passed on the command line DAT-15769 (liquibase#4726)

* Allow update command to handle additional properties that are
passed as -D arguments on the command line

DAT-15769

* Remove outputWriter from call to run update in old Main

DAT-15769

* Fix liquibase.bat java home handling under Windows (liquibase#4845)

* Revert "Fix liquibase 4.23.1 won't work on windows if there is no JAVA_HOME system variable set (liquibase#4803)"

This reverts commit 7e709fe.

* Revert "Fixes liquibase#3625 JAVA_HOME Path when parenthesis are present (liquibase#4306)"

This reverts commit 202c0a8.

* Bump org.xerial:sqlite-jdbc from 3.42.0.0 to 3.43.0.0 (liquibase#4784)

Bumps [org.xerial:sqlite-jdbc](https://github.com/xerial/sqlite-jdbc) from 3.42.0.0 to 3.43.0.0.
- [Release notes](https://github.com/xerial/sqlite-jdbc/releases)
- [Changelog](https://github.com/xerial/sqlite-jdbc/blob/master/CHANGELOG)
- [Commits](xerial/sqlite-jdbc@3.42.0.0...3.43.0.0)

---
updated-dependencies:
- dependency-name: org.xerial:sqlite-jdbc
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ant.version from 1.10.13 to 1.10.14 (liquibase#4752)

Bumps `ant.version` from 1.10.13 to 1.10.14.

Updates `org.apache.ant:ant` from 1.10.13 to 1.10.14

Updates `org.apache.ant:ant-antlr` from 1.10.13 to 1.10.14

Updates `org.apache.ant:ant-junit` from 1.10.13 to 1.10.14

Updates `org.apache.ant:ant-launcher` from 1.10.13 to 1.10.14

---
updated-dependencies:
- dependency-name: org.apache.ant:ant
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.ant:ant-antlr
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.ant:ant-junit
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.apache.ant:ant-launcher
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed: SQL Anywhere reports fancy precision with LONG NVARCHAR (liquibase#4648)

* Replacing special constants specific to SQL Anywhere by commonly supported JDBC Escape Functions (liquibase#4697)

* Replacing special constants specific to SQL Anywhere by commonly supported JDBC Escape Functions

* Joining if's

---------

Co-authored-by: filipe <[email protected]>
Co-authored-by: rberezen <[email protected]>

* Bump groovy.version from 2.5.22 to 2.5.23 (liquibase#4838)

* Bump groovy.version from 2.5.22 to 2.5.23

Bumps `groovy.version` from 2.5.22 to 2.5.23.

Updates `org.codehaus.groovy:groovy-bom` from 2.5.22 to 2.5.23
- [Commits](https://github.com/apache/groovy/commits)

Updates `org.codehaus.groovy:groovy-all` from 2.5.22 to 2.5.23
- [Commits](https://github.com/apache/groovy/commits)

---
updated-dependencies:
- dependency-name: org.codehaus.groovy:groovy-bom
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: org.codehaus.groovy:groovy-all
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* Update groovy version to upgrade to.

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.3.0 to 3.4.0 (liquibase#4717)

Bumps [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/apache/maven-enforcer/releases)
- [Commits](apache/maven-enforcer@enforcer-3.3.0...enforcer-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixed: Fails to detect LONG VARCHAR as CLOB and LONG BINARY as BLOB (liquibase#4670)

* Fixed: Fails to detect LONG VARCHAR as CLOB and LONG BINARY as BLOB

* Blob and Clob data types tests added.

---------

Co-authored-by: Daniel Mallorga <[email protected]>

* remove workflow_call  from build-branch, add dependabot to push-branches, change concurrency rule of run-tests to not cancel concurrent builds on master

* add workflow_call  from build-branch

* Initialize the 'github' object

* do not require signature assertion in CommandTests (liquibase#4851)

* removing Initialize the 'github' object

* Separate sections of the branch name with a hyphen for dependabot PR's (DAT-15548) (liquibase#4852)

* pull-request-branch-nameseparator

Signed-off-by: Sayali Mohadikar <[email protected]>

* indentation check

Signed-off-by: Sayali Mohadikar <[email protected]>

---------

Signed-off-by: Sayali Mohadikar <[email protected]>

* changes due to error of github.context

* syntax error

* removing github context

* adding LIQUIBOT_PAT_GPM_ACCESS to access OSS and PRO

* adding LIQUIBOT_PAT_GPM_ACCESS to access OSS and PRO

* adding LIQUIBOT_PAT_GPM_ACCESS at the top of the job

* Remove duplicated arguments (DAT-15461) (liquibase#4713)

* remove unused mdc key

* initial add of update report

* remove end time

* add integration test

* remove unused import

* fix command tests

* null-safe labels and contexts

* make keys bold, reformat table a bit, calculate changeset index correctly when there are both failed and successful changesets

* [DAT-15461] Remove duplicated report arguments.

* [DAT-15461] Fix bad merge, re-remove unnecessary args.

---------

Co-authored-by: Steven Massaro <[email protected]>
Co-authored-by: rberezen <[email protected]>

* use github.rest.repos and print github object

* revert to using old code

* Handle the case where no branches are found and use branchName.name.startsWith

* syntax error

* syntax fix for job condition

* syntax fix in javascript

* More consistent message when included file is empty DAT-15551 (liquibase#4812)

* Added more error handling for empty changelog files

DAT-15551

* Tests for messages

DAT-15551

* Fix test

DAT-15551

* Fix more tests

DAT-15551

* Another test fix

DAT-15551

---------

Co-authored-by: Taras Amelianovych <[email protected]>

* testing changes for cleanup branch and pull_request for run-test yml file without the use of authorize

* thisBranchName for OSS and PRO matching branch

* changing the secret name to RUN_FUNCTIONAL_TEST_HARNESS_TESTS_TOKEN and adding testHarness yml

* using latestMergeSha for the commitSha-SNAPSHOT and adjusting env for tar.gz package

* using secrets.LIQUIBOT_PAT and fix indentation in new-build.yml file

* checking to see if a new version of github-action-DAT-15775-SNAPSHOT gets generated in liqubiase.liquibase GPM

* moving tar.gz to publish branch-SNAPSHOT instead of commitSHA-SNAPSHOT

* Handle XML data types for DB2 DAT-12878 (liquibase#4827)

* Rework code to handle DB2 differences

DAT-12877

* Handle XML data types

DAT-12878

* removing authorize job as we are getting it from settings in liquibase/liquibase and changing branch-matching logic

* testing new logic for matching-branch as I found some edge cases where old logic wont work

* testing new logic for matching-branch with abcd branchName

* adding catch (error)

* use currentBranch

* Improve update summary usability (liquibase#4395)

* Propagate skipped changesets to parent changelog

* Add showSummary property

* Test skipped changeset propagated to root changelog

* Added updateReport expected result to some failing tests.

---------

Co-authored-by: Daniel Mallorga <[email protected]>
Co-authored-by: Daniel Mallorga <[email protected]>

* adding GITHUB_TOKEN for Publish branch-SNAPSHOT version to GPM

* Implement showSummaryOutput parameter (liquibase#4574)

* Implement showSummaryOutput parameter

* Fixed collectArguments test for update command.

* Apply review comments

* Update summary output tests added.

* Add showSummaryOutput to SpringLiquibase

* Refactor show detail table

* Added updateReport expected result to some failing tests.

---------

Co-authored-by: Daniel Mallorga <[email protected]>
Co-authored-by: Daniel Mallorga <[email protected]>

* setting of thisBranchName

* echo modified_branch_name and use thisBranchName for tar.gz package to GPM

* liquibase-commercial needs thisBranchName as this is a matching branch logic

* reset master to 4.23.1 (d9a4a92) (liquibase#4873)

This PR resets master to d9a4a92, which is the commit associated with the 4.23.1 release tag.

```
$ git reset --hard d9a4a92
$ git reset --soft ad6517d
```

```
PS C:\dev\git\liquibase> git reset --hard d9a4a92
HEAD is now at d9a4a92 Merge pull request liquibase#4643 from liquibase/github-action-DAT-15622-build-installer
PS C:\dev\git\liquibase> git reset --soft ad6517d
```

* DAT-15857 - Fix for checksum upgrade in runWith change sets  (liquibase#4874)

DAT-15857
---------

Co-authored-by: Wesley Willard <[email protected]>

* Tweaked exception message for invalid formatted SQL file (liquibase#4870)

DAT-15874

Co-authored-by: Wesley Willard <[email protected]>

* getting error 403 Forbidden for forked PR

* build-branch on pull_request

* Release notes for 4.23.2

* using pull_request_target with authorize as forked PR is giving an error 403

* the tar.gz is failing even with the use of authorize with 403

* testing publish_tar_package_to_build_artifact

* in standAlone PR branches-ignore for macthing branches

* commenting out tests for testing and build branch only when run-test finishes

* Revert "reset master to 4.23.1 (d9a4a92)" (liquibase#4890)

Revert "reset master to 4.23.1 (d9a4a92) (liquibase#4873)"

This reverts commit acfe8ed.

* do not attempt to recreate DBCL when it is specified with mixed case (DAT-15570) (liquibase#4846)

use legacy object quoting when dealing with system objects

* Fix regression in recognizing formatted SQL file DAT-15865  (liquibase#4859)

DAT-15865

Fix regression in recognizing formatted SQL file

* testing publishing of tar.gz package

* forked PR is not able to publish to GPM giving 403 forbidden

* syntax error

* using LIQUIBOT_PAT to Publish <commitsha>-SNAPSHOT

* using authorize in build-branch

* testing with workflow_run: completed

* Fix LabelExpression constructors when using array or collection (liquibase#4854)

* - LabelExpression constructors updated to set originalString.
- Unit tests added.

* - ContextExpression constructors updated to set originalString.
- Unit tests added.

* testing with workflow_run: completed

* testing with workflow_run: completed

* testing with workflow_run: completed

* testing with workflow_run: completed

* testing with workflow_run: completed

* testing with workflow_run: completed

* without using quotes

* without using quotes

* using workflow_run (liquibase#4899)

Signed-off-by: Sayali Mohadikar <[email protected]>

* workflow dispatch for Build Branch SNAPSHOT

* testing

* testing

* testing

---------

Signed-off-by: Sayali Mohadikar <[email protected]>
Signed-off-by: sassasayu <[email protected]>
Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Sayali M <sayali@Sayalis-MacBook-Pro>
Co-authored-by: Sayali Mohadikar <[email protected]>
Co-authored-by: filipe <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Markus KARG <[email protected]>
Co-authored-by: Daniel Mallorga <[email protected]>
Co-authored-by: andrew-simmons <[email protected]>
Co-authored-by: Andrew Simmons <[email protected]>
Co-authored-by: nwcm <[email protected]>
Co-authored-by: Steven Massaro <[email protected]>
Co-authored-by: Wesley Willard <[email protected]>
Co-authored-by: rberezen <[email protected]>
Co-authored-by: Daniel Mallorga <[email protected]>
Co-authored-by: Alex <[email protected]>
Co-authored-by: Taras Amelianovych <[email protected]>
Co-authored-by: Claudio Nave <[email protected]>
Co-authored-by: Wesley Willard <[email protected]>
KeepItSimpleStupid added a commit to KeepItSimpleStupid/liquibase that referenced this pull request Feb 13, 2024
… plugin

 liquibase#4395 and liquibase#5077 brought the options `showSummary` and `showSummaryOutput` to the `update` goal of the maven plugin.

These options seem to be relevant for the `updateSQL` and `updateTestingRollback` goals as well, so this PR brings them to the parent abstract class of all these goals
filipelautert pushed a commit that referenced this pull request Mar 4, 2024
… plugin (#5592)

#4395 and #5077 brought the options `showSummary` and `showSummaryOutput` to the `update` goal of the maven plugin.

These options seem to be relevant for the `updateSQL` and `updateTestingRollback` goals as well, so this PR brings them to the parent abstract class of all these goals

Co-authored-by: Daniel Mallorga <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

7 participants