Create a GitHub action into the MariaDB server tree to build the Markdown
documentation using the cmake target provided by MDEV-39718.
This workflow generates API documentation for the plugin using a
Docker container packed with all the extra doxygen/moxygen tools.
Fixed some more doxygen problems.
Moved the repo to ghcr.io/mariadb/mariadb-doc-gen:latest.
1. Relax InnoDB rename assertion for partitions
row_rename_table_for_mysql() asserted that RENAME_IGNORE_FK is never
used to rename a table to a temporary name:
ut_ad(fk != RENAME_IGNORE_FK || !new_is_tmp);
But EXCHANGE PARTITION renames a partition to a temporary #sql-exchange
name, and during DDL-log recovery with lower_case_table_names=1 this
reaches the partition retry in innobase_rename_table(), which passes
RENAME_IGNORE_FK. So relax the assertion for partition names.
This fixes an assertion failure in parts.partition_debug_innodb during
crash recovery; debug-only change.
2. Fix diff in parts.alter_table
Guard the lower_case_table_names combinations in include/lcase_names.inc
with the matching include/have_lowercaseN.inc,
so each is skipped unless the server actually ended up in that mode.
mtr can be run (and on one CI machine is run) with a forced
--mysqld=--lower_case_table_names, and the server does not always
honour the request (=2 is reset to 0 on a case-sensitive filesystem).
The "def" combination assumed lower_case_table_names=0; make that
explicit and rename it to lcase0 for symmetry with lcase1/lcase2. It
stays an empty combination, since an explicit =0 would make the server
refuse to start on a case-insensitive filesystem.
3. Make sure the parts suite is actually tested on CI on case-insensitive
filesystem
add it to buildbot_suites.bat. In addition, test on case-sensitive NTFS
directory (Github Actions builder)
Do not overload the machine. Huge reservation seem to stress
Windows on ARM64 memory management, so that random OOM can appear
when multiple processes are constantly allocating/deallocating
huge chunks of memory. Thus, reduce number of parallel threads to 2,
and do not run replication tests.
Do not print a bogus error line
gh command line can return non-zero status even when it actually
sets a label.
So, as a result, daily runs of the scheduled task would print a bogus
error line, even if the label is applied successfully.
Fixed by removing the error status line and the counter.
Further tuned the query to cover only PRs since 2025-01 and to cover all PR states.
Removed unused JSON fields from the output and the parsing
Enabled writing the labels back to the issue.
with foundation/corporation/external contribution
The MariaDB server repository uses certain pull request labels as queue markers
for incoming pull requests as follows:
- External Contribution: for all external contributions
- MariaDB Corporation: for employees of the MariaDB corporation
- MariaDB Foundation: for the employees of the MariaDB foundation
Right now, when a new pull request is filed, these tags need to be applied
manually.
However a large % of these manual assignments can be automated by checking
if the author is in https://github.com/orgs/MariaDB/teams/staff
or in https://github.com/orgs/MariaDB/teams/developers.
If they are in staff "MariaDB Foundation" is assigned.
if they are not in staff, but are in developers, "MariaDB Corporation" is assigned.
If they are in neither staff nor developers, "External Contribution" is assigned.
A github workflow is created to do the assignments. It is being triggered
every day at 2AM. Or it can be triggered manually.
This is stage1 of the fix: it is read only and only *prints* the changes needed
The template in pull_request_template.md is out of date and a documentation
rather than a pull request description. This was not really contriburing
a lot towards good pull request descriptions as most of the time it had to
be removed first before the actual descrption is written down.
Removed the pull_request_template.md as discussed in PR#4209
Note that there is a follow-up work in progress (and it will eventually
result in a pull request) to update the text in other contribution
related documents.
But removing this not-really-a-template template is going to produce
an immediate improvement into the contribution process.
When making commits, the branches to target are not clearly defined in
public documentation, and frequently change. As the development branch
and the earliest maintained branches progress, it should be reflected in
CODING_STANDARDS.md.
All new code of the whole pull request, including one or several files
that are either new files or modified ones, are contributed under the
BSD-new license. I am contributing on behalf of my employer Amazon Web
Services.
The CODEOWNERS was added almost 3 years ago but never saw any adoption.
Only one person used it (me) to mark what files I maintain and for which
I wish to review commits. No other maintainers or code paths were added,
so clean it away for clarity.
Often there are small "nitpicky" changes that need to be done to a PR in order to
get it merged. To speed up the merge process, we will ask contributors
if they are ok with the reviewer making those changes.
Other fixups:
Improve PR template rendering in browser's textarea field. Line wrapping at 80
characters provides a bad user experience within the browser, which
handles word wrapping separately. Thus, prefer long lines in this
markdown file.
Remove the "backwards compatibility section". While the contributor
should ideally care about the impact of their patch on the server's
backwards compatibility, this is an advanced topic that is better
presented in a separate document.
This is intended to be the start of a (not complete) coding standards
document we can refer contributors to. This can be modified to add more
nuances and become stricter over time. It can also have additional
content for other file types (CMake, YACC, etc).
It does not cover plugins which should each individually have their own coding
standards.
Many recent PRs offer up shell scripts or example queries in the testing
section, when these could be easily and usefully be converted to automated
tests based on MTR. (https://github.com/MariaDB/server/pull/1888 and
https://github.com/MariaDB/server/pull/1940 are good examples of this.)
This modifies the PR template to more strongly encourage the contribution of
automated tests.