-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[Policy] Introduce CODEOWNERS #20137
Conversation
Agree, it would bring us a step further. The only problem I see is when a code owner disappears or has no time for a longer period, that the pr get then blocked. So I think it would be not bad to have at least for every entry in the file two owners. |
That's why it should be teams versus individuals, but again, lacking having teams set up in GitHub at the moment the use of individuals is there to just demonstrate how it all works. |
Sounds like a no-brainer to me. Lets try it and see how it goes. I guess if a code owner disappears, we can (and obviously should) remove him from the list and the PR gets mergeable again. |
What about adding the .github folder files to the cms-maintainers group so we have a showcase for that too? ;-) Maybe we can also add @Bakual and @infograf768 for the lanuage stuff. I mean the php classes and components. I agree with @Bakual lets see how it goes. If this get merged up please add me for the httpheaders plugin in 4.0 @wilsonge 😋 The only problem I see here is that just people with merge access can be added to that group. I don't think it would be wise to have so many groups and people with merge access. |
And by the way this would also the reason why the codemirror part don't work as he don't has merge permissions |
Again, this is not a finalized personnel roster, please do not scrutinize line by line who is or is not listed as an "owner" of a section; the examples used here are based on current practical work where people have been commonly engaged in sections of the code base and are either informally an "owner" of it (such as with the CodeMirror editor updates), or are a subject matter expert in the system (such as with custom fields). So while it is a somewhat accurate summary of who knows stuff or works in a certain section of code, it's not meant to be a finalized or all inclusive list.
This is also part of the problem aiming to be addressed. Sure, it means it requires more people to have write access, but it also means that the people merging pull requests (most frequently right now myself, @wilsonge, and @laoneo; to a lesser degree you @zero-24 and @rdeutz are merging things but only matching selective criteria) don't have to be subject matter experts on the entire code base. In a perfect world with things being the way they are right now, whenever I merged anything I would do my own final test and review of the pull request as a final validation of the change proposal (in part it acts like a checks and balances system, I have found issues on pull requests marked RTC which indicates the patch wasn't actually tested fully) and then merge it if my test and review are acceptable. The simple fact is I don't have the time for that, and I'm sure other mergers would say the same, so a lot of us are merging either with trust in something having been set RTC or after doing a quick scan over the diff to ensure there are no glaring errors. I'm not an expert on every single feature in the CMS repository. So for me, what might come across as a simple pull request like #19982 isn't something I can just look at and be like "oh, this is right, good to go" or "umm, there's a problem here, needs work" except for obvious code syntax issues. Then there are things like #20068 which are in their fourth or fifth iteration (luckily the people involved have been willing to stay engaged with that work because it has had a lot of scrutiny and review) but even when I did hit the merge button I had to rely a lot more on the fact that others had tested and reviewed it (including the "owner" of that code). So yes, more people have merge capabilities. Which is why the owners should be trusted individuals. If you have any familiarity with the core team structures of other projects, and I will call out WordPress, Drupal, and Symfony as three where they have something like this, it is in essence defining a "component maintainer" where someone is the owner/overseer of that section of code; in some cases these owners do have merge rights whereas in other cases what they do would count as a requirement for one of our PRs to be marked RTC. Assuming I've accurately set up our OpenHub page as it relates to what directories it excludes from metrics, there are over 540,000 "useful" lines of code in this repository (actual production code or inline documentation/comments) on the staging branch alone, we can assume 4.0 is similar for the sake of discussion. As I pointed out earlier for all practical purposes there are 5 people actually merging patches to the active branches on this repository, and because there is no defined "trusted individual/group" charged with oversight of sections of the code, those 5 people in essence have to be absolute subject matter experts on a massive amount of code (108,000 lines each if things were split up evenly). This is about as unsustainable as only having 3 people in the entirety of the project who are trained/capable of tagging and issuing releases. |
Sounds good to me let us give it a try. |
Well you are the release lead and if not something changes you are in charge of taking final decision (== merge) so of course you do the most merges at the moment. Same applies to George and Allon about Joomla 4. At the time Robert was release lead he merged the most. This is absolutely what I expect from the release lead take decisions (== merges) By the time I was given merge rights it was not intended not by me nor by the persons who gave me merge access that I'm going to merge all kind of PR's myself. I needed to have merge rights to close PRs assign labels and milestones and it was also said that i can merge basically "no-brainer PR's" that just need someone to hit the merge button. And well this is the kind of thing I do today.
Well I don't have that much insight in the process that they do and how many "code owners" they have and how may of them have merge rights nor how they work is structured in details to comment on that. But I fully agree on the second part that the code owner review could be a requirement to set a PR RTC.
Well in the past these three people are the only one who did releases. And to me it is the absolute power of the release lead to do the release and I would not question that. And if not assign and delegate that task. But this did not happen until now. So here we are three people having access to the update server and all the places you need to update for a release. I don't say that all the things are great now and we don't need to change anything nor I'm denying what you said about code lines etc. I fully agree with you to get more reviews from other members of the community / code owners. I just don't want us to have too many people with merge rights (== decision) that could lead into situations where one person/group decide we go in this direction and another we go in this direction. To me the direction choice is primary done by the release lead. Maybe I'm alone with that opinion at all maybe not. |
even without merge rights the "code owners" approval can help the "release lead" to speedup the decision, so lets try it and see how it goes. |
So, to counter some of that.
I don't feel it is my responsibility to merge every pull request. I do
feel it is my responsibility to ensure those merging on my branch(es) are
staying in line with established policy and whatever vision is in place for
the release, and therefore should be able to entrust others to make
informed decisions to either merge a PR, request changes if they review and
see an issue, or ping another decision maker (someone who can merge or
release lead) for a second opinion. Generally I'd have no issue with
anyone on the owners file merging a pull request affecting their area so
long as procedure is followed (SemVer type stuff, gets to RTC by testing,
or "no brainer" things), to me that is part of the trust and communication
that should exist at this level.
Speaking of the "no brainer" stuff, PR #20135 is one of those PRs which
falls into that category, you or I might have merged it with no questions
asked, but Brian looked at it and found that although the PR does as
advertised (fixes an inconsistency) it also was the incorrect fix. So even
these simple things, having a subject matter expert doing a quick glance
before merging acts as a quality control layer.
I don't know off hand how merges are handled in WordPress and Drupal, but
the Symfony component owners do have merge rights on their sections; this
is documented in their core team guides. If I'm not mistaken, WordPress
has over 30 "components" and each one has an owner (not sure if there is
overlap, as in someone owning multiple) and I do believe many of them have
merge capability.
On Wed, Apr 11, 2018 at 12:55 PM zero-24 ***@***.***> wrote:
(most frequently right now myself, @wilsonge <https://github.com/wilsonge>,
and @laoneo <https://github.com/laoneo>; to a lesser degree you @zero-24
<https://github.com/zero-24> and @rdeutz <https://github.com/rdeutz> are
merging things but only matching selective criteria)
Well you are the release lead and if not something changes you are in
charge of taking final decision (== merge) so of course you do the most
merges at the moment. Same applies to George and Allon about Joomla 4. At
the time Robert was release lead he merged the most. This is absolutely
what I expect from the release lead take decisions (== merges)
By the time I was given merge rights it was not intended not by me nor by
the persons who gave me merge access that I'm going to merge all kind of
PR's myself. I needed to have merge rights to close PRs assign labels and
milestones and it was also said that i can merge basically "no-brainer
PR's" that just need someone to hit the merge button. And well this is the
kind of thing I do today.
If you have any familiarity with the core team structures of other
projects, and I will call out WordPress, Drupal, and Symfony as three where
they have something like this, it is in essence defining a "component
maintainer" where someone is the owner/overseer of that section of code; in
some cases these owners do have merge rights whereas in other cases what
they do would count as a requirement for one of our PRs to be marked RTC.
Well I don't have that much insight in the process that they do and how
many "code owners" they have and how may of them have merge rights nor how
they work is structured in details to comment on that. But I fully agree on
the second part that the code owner review could be a requirement to set a
PR RTC.
But to me that code owner don't need to have merge permissions and that is
what I would raise with my comment. I know this is a problem with how
GitHub set up that feature but this is the reason why I have said this.
This is about as unsustainable as only having 3 people in the entirety of
the project who are trained/capable of tagging and issuing releases.
Well in the past these three people are the only one who did releases. And
to me it is the absolute power of the release lead to do the release and I
would not question that. And if not assign and delegate that task. But this
did not happen until now. So here we are three people having access to the
update server and all the places you need to update for a release.
I don't say that all the things are great now and we don't need to change
anything nor I'm denying what you said about code lines etc. I fully agree
with you to get more reviews from other members of the community / code
owners.
But to me this don't mean we need to extend our members with merge rights.
As to me merge is decision and this is the position of the release lead.
I just don't want us to have too many people with merge rights (==
decision) that could lead into situations where one person/group decide we
go in this direction and another we go in this direction. To me the
direction choice is primary done by the release lead. Maybe I'm alone with
that opinion at all maybe not.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#20137 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAWfoYngWIbmcoPohRadnCzgdA08YUnZks5tnkOlgaJpZM4TPYBE>
.
--
- Michael Please pardon any errors, this message was sent from my iPhone.
|
I will post this idea that I've shared some time ago:
So basically all I am trying to say here is: we already have a foundation on who's responsible for what by the languages themselves. We just need an official design team (closely collaborating with A11Y and JS because the delivered pages do have all these 3 languages). Now the idea to fragment the code to even smaller pieces where one person will be in charge of some smaller or bigger part, although is great, I think it will be very hard to execute (find so many contributors willing to take such a responsibility, but I might be wrong here). |
i don't read this proposal like this: i've read it something more like this:
it will be always the "release lead" responsabilty to merge it or to take the final decision |
Having those 4 core groups is a good starting point, but the PHP API is too
large and complex to depend on either people being randomly pinged, paying
attention to every PR, or expecting a small group to "own" it all.
Take fields as an example; it's Allon's code. I'm not familiar with it's
workflow or structure or integrations or design decisions, so it's
difficult for me to be involved with review on it. But he can. Let him
manage that and me focus elsewhere.
Take our APIs with database integration (extension install library, schema
manager as two high level examples). Most people can probably deal with
the root concept of it no problem, especially as testing things on MySQL is
generally a breeze. But changes aren't always validated against PostgreSQL
or SQL Server. I would argue some aspects of database integration related
PRs need to be "blessed" by a person capable of judging a database's
capabilities and integrations.
It's why I think breaking things down a bit distributes the workload off of
some overworked/overtaxed individuals. How that works specifically still
needs some hashing out, but the status quo isn't sustainable in various
ways and we need to optimize that a bit.
On Wed, Apr 11, 2018 at 1:44 PM Dimitri Grammatikogianni < ***@***.***> wrote:
I will post this idea that I've shared some time ago:
Lets break Joomla to 4 major parts:
- HTML: Accessibility team is essentially controlling of the related
code.
- CSS: The design (?) team is controlling all aspects of the related
code.
- JS: The JS group govern this part of the code.
- PHP: Production leader, release leader, maintenance and security
rule this code.
So basically all I am trying to say here is: we already have a foundation
on who's responsible for what by the languages themselves. We just need an
official design team (closely collaborating with A11Y and JS because the
delivered pages do have all these 3 languages).
Now the idea to fragment the code to even smaller pieces where one person
will be in charge of some smaller or bigger part, although is great, I
think it will be very hard to execute (find so many contributors willing to
take such a responsibility, but I might be wrong here).
Anyways that was my 2c here
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#20137 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAWfofA68XBoTkryactugFMrA2u1WXp-ks5tnk7zgaJpZM4TPYBE>
.
--
- Michael Please pardon any errors, this message was sent from my iPhone.
|
@zero-24, we are talking here about reviews. I mean even when people get merge rights, the primary job of a code owner is to approve a pr. |
I agree with this totally. Who wants to own setting up this file? |
Umm this is a pull request every thing you need to do is here |
yah i was even filtering by pull requests when i opened this issue. i definitely need to go sleep..... |
* Prepare 3.8.4 Release Candidate * Reset for dev * Regression in the ISIS backed css PR for #19411 * Regression: Isis RTL forgotten in 19417 (#19423) * [com_content] - archived legacy SEF fix (#19397) * [com_content] - archived legacy sef fix * cs * Fix media manager 'up' button (#19443) * Regression at createUri from #19099 (#19415) * [installer] - sanitize extensions type as lower case (#18416) * Fix filter by multiple categories (#19450) * Fix filter by multiple categories * Remove debug code * 2nd Release Candidate for 3.8.4 * Do not add unnecessary parameters in the archive link (#19447) * Do not add unnecessary parameters in the archive link * Remove php notice * Unset parameter month=0 when year is not set * Prepare 3.8.4 release * Reset for development * Move from protocol relative links to https for google fonts imports (#19488) * move to protocol relative links to https * fix one broken font link * Revert "Regression at createUri from #19099 (#19415)" This reverts commit 128a4d4. * Revert "Correctly redirect after logging into the multilingual joomla with association enabled (#19295)" This reverts commit 5994eb1. * Revert "Fix parser error in plugin languagefilter on php5 (#19268)" This reverts commit 05fd1d9. * Revert "Do not add default or active Itemid to every link without own menu item (#19099)" This reverts commit d068868. * Update CMSApplication.php (#19514) * CodeMirror Updated to 5.34.0 (#19533) * Prepare 3.8.5 release candidate * Reset to dev * Revert "Do not add unnecessary parameters in the archive link (#19447)" This reverts commit 0155f35. * Revert "[com_content] - archived legacy SEF fix (#19397)" This reverts commit 01a9147. * Prepare 3.8.5 release * Reset for dev * Changed parameter to bool (#19573) * Removed orphan weblinks languages (#19495) * Changing loading order for between Redirect and Logout system plugins at (#19489) install time * mod_articles_news. Define $item_heading only if needed (#19439) * mod_articles_news. Define $item_heading only if needed * Update _item.php * Update _item.php * Fix count() in PHP 7.2 (#19396) * Fix count() * Simplify check * [CS] Code style Tabs must be used to indent lines; round 1 (#19350) * Tabs must be used to indent lines; round 1 Tabs must be used to indent lines; spaces are not allowed * Fix some indent issues not fixed by the auto fixer nothing is perfect, sometimes we need to make some minor adjustments. * fix line issue * Make suggested changes to reflect general code style * Add space after ; - correct indenting - remove extra ; - correct spaces * was on it's own line * fix missing semicolon * align equals replace tab with spaces on line 25 * remove extra space * fix missing semicolons fix some spacing around operators * com_mailto remove unused params (#19290) I was checking to see why we had an untranslated string and as far as i can tell this entire params section is not used To test apply pr and make sure that the send to friend functionality works as before * [com_fields] Fields are not copied when batch duplicating an article (#16958) * [#16740] - [com_fields] Fields are not copied when batch duplicating an article * user deploy version over the wrong since tag ;) * [#16740] - [com_fields] Fields are not copied when batch duplicating an article * Handle modified date in Document objects consistently (#19592) * Delete existing user_keys, if password is changed (#17827) * Delete existing user_keys, if password is changed * corrected styling issues * deploy version - as I said, this is my first pr * pushing to patch-2 * newline after } * push to patch-2 * push to patch-2 * Update en-GB.com_users.ini * Update remember.php * Update remember.xml * configuration option in XML file radio button option to activate/deactivate the "reset RememberMe" functionality on password-change. * Update en-GB.plg_system_remember.ini * hm... * Update remember.php * Update remember.php * XML styles * commenting out the user message * Update remember.php * Update en-GB.plg_system_remember.ini * btn-group-yesno * Update remember.php * Update remember.php * reference to Alice Ruggles removed! * making it mandatory * Update remember.php * making it mandatory * making it mandatory * making it mandatory * as per the remarks of Quy changed * changed as per Quy's remarks * [CS] Code style Tabs must be used to indent lines; round 2 (#19351) * [CS] Code style Tabs must be used to indent lines; round 2 - Tabs must be used to indent lines; spaces are not allowed * fix some indenting not fixed by the auto fixer * Fix some more indenting and spacing * use and/or in template mixed HTML/PHP files For consistancy, Until a decision is made on joomla/coding-standards#191 use `and`/`or` in template mixed HTML/PHP files rather than our normal required `&&`/`||` requierment that we have for full PHP files * Use the && and || operators preferences to Use the && and || operators * Remove space indent exceptions (#19609) * remove space indent exceptions * tab indent not spaces * Tabs must be used to indent lines; spaces are not allowed * Tabs must be used to indent lines; spaces are not allowed try using the concatenation to fix space indent strangeness * Tabs must be used to indent lines; spaces are not allowed * [3.9] Tweak update percentage message to include %-sign (#19628) * Tweak update percentage message to include %-sign * Add minified version. * Typo Joomla is vegetarian (#19649) Quick fix to the spelling of meet * Plain English cont. (#19654) The accessibility standard Web Content Accessibility Guidelines (WCAG) 2.0 Section 3 states https://www.w3.org/TR/WCAG20/#understandable >### 3. Understandable > Information and the operation of user interface must be understandable. >#### Guideline 3.1 Readable > Make text content readable and understandable. > #### Success Criterion 3.1.5 Reading Level > When text requires reading ability more advanced than the lower secondary education level after removal of proper names and titles, supplemental content, or a version that does not require reading ability more advanced than the lower secondary education level, is available. To achieve this we should use "plain language" wherever possible 1. Word choice: use the simplest word that conveys your meaning. http://plainlanguagenetwork.org/plain-language/what-is-plain-language/ 2. Prefer the short word to the long. https://www.plainlanguage.gov/guidelines/words/ This PR continues the work and removes the superfluous text " to make it possible" * Plain English (#19629) * accordingly * advised => recommended * assist => help * attempt=>try * concerning => relevant * contains => has * containing -> with * contains=-> has * Currently -> (omit) * designated -> marked * initial -> first * initialise->start * in order to -> to * it is -> (omit) * optimal -> best * regarding->on * remain -> stay * terminated -> stopped * word order * Fix PHP Warning for Session on PHP 7.2 (#19199) * Fix PHP Warning for Session on PHP 7.2 * CS * Correctly call function with the parameter by reference (#19233) * Better code for set category view layout (#19238) * [Modern Routing] make a simpler loop in StandardRules::build (#19271) * Simpler loop in build method of StandardRules * Now use last_id only * Remove useless code * Remove support for new router configuration * Improve performance of the com_content category view for a huge number of articles (#19284) * Multilingual: Associated categories should display only when published (#19551) * Multilingual: Associated categories should display only when published * cs * cs * [CS] Array list style (#19610) * array list style * array list style * array list style * array list style * Prevent compounding inputmode attribute (#19632) * Fix user profile plugin (#19633) * Update pagebreak plugin description (#19653) Simple PR to update the very outdated text suggesting that the page break button is normally found under the article text area. * Chinese calendar js files don't load on Linux because they are not (#19662) lowercase. * Typo (#19675) Simple PR to fix a typo in a string * Implement Session GC Cli (#19548) * Implement Session GC Cli * CS add new line * Add deprecate log message for the pathway name attribute (#19700) * Add deprecate log message for the name attribute * Spelling * typo (#19691) * typo can be merged on review * more * Possible misprint (#19688) I think $ids array stores articles ids, because $articleModel->getItem()->id. Maybe copy-paste from line 159/line 206? Also, this possible misprint can be found in 4.0 branch. * Add the missing import in the application (#19709) * Add the missing import in the application * Use the local logger * fix 404 on github dokukmentation links (#19775) * Articles - Latest (#19664) The descriptions says "This module shows a list of the most recently published and current Articles." So if they are "current" then they cant also "may have expired" Simple PR to correct that on the front end For the admin version of the module the change is a little different as here the list will show all the articles irrespective of their current published state so the string change is different and is just a simplification and not a correction * reCAPTCHA V1 stops on March 31 (#19648) * reCAPTCHA V1 stops on March 31 Google have emailed directly anyone using v1 reCAPTCHA keys but users don't read their email. This PR adds a post-installation message IF they have the reCAPTCHA plugin enabled AND they are using v1 keys. This PR also updates the messages in the plugin informing them that V1 will not work after march 31 @mbabker already completely refactored the plugin for J4 to remove V1 etc this PR is ust for the messages * CS - new lines * use query to find the extension_id and not haardcoded * docblock * 3.8.6 * Update actions.php * System Information (#19764) * System Information We had the db version and the db collation but not the type This PR adds the database type eg postgresql, mysql etc * Update sysinfo.php * rename and move * rename * Overrides do not find 3rd party plugins languages when files are in the (#19740) plugin * Com_redirect: Differentiating utf8 old_url (#19734) * TinyMCE: uglify the inline XTD-btns script (#19731) * remove tabs and returns and spaces * more compression * Add some comments so others can follow the code * Doh, this code was for J4 * reninitialise the array 😡 * Update bootstrap-rtl.css (#19715) * Update bootstrap-rtl.css Duplicate entry .radio.btn-group > label:first-of-type * Update bootstrap-rtl.less Removed 2nd occurrence of .btn-group > .btn:first-child, .radio.btn-group > label:first-of-type * Hide global configuration and system information from non super users (#19697) * Hide global configuration and system information from non super users * Use identical operator * [a11y] Cache toolbar (#19686) We use the icon name to populate the ID. This toolbar has the same icon for both buttons so we have two buttons with the same id which is an accessibility failure This pr ensures every id attribute value is unique Because the icon has multiple names we can simply use one of the alternative names as a quick and dirty fix. There is no visual change * Wrong desc fixed. Changed title to document! (#19685) * Wrong desc fixed. Changed title to document! * Update Document.php * Move custom buttons to the other buttons in TinyMCE (#19656) * Proxy to a higher error handler if there is one available (#19645) * Correct output_buffering check in 3.8.x (#19611) * correct output_buffering check in 3.8.x * simplified the check @Quy * this is why we can not have nice things.. fixing the check for output_buffering * Pass the configuration tmp_path to the archive package for extension installations (#19608) * pass the configuration tmp_path to the archive package for extension installations * add missing \ * Improve header handling in PageController cache (#19591) * Defining typeAlias (#19647) * Fix JRoute('&var=...') not adding current URL variables when current URL is the home page (#19582) * Fix loosing current URL vars when in home page * Update SiteRouter.php * Test units * Test units * [TemplateAdapter.php] Rewrote hardcoded SQL to query object (#17923) * rewrote hardcoded SQL to query object * correction in SQL for home field is declared as char/varchar * correction in SQL for home field is declared as char/varchar + ->q() * the requested change from @Quy * added microdata (#17689) * [Schema checker] (Database FIX) Add support for checking NULL and DEFAULT column attributes (#17351) * [Schema checker] (Database FIX) Add support for checking NULL and DEFAULT column attributes * CS * Update en-GB.com_installer.ini * english * The One Right Session Management Configuration For Joomla! 3 (#19687) * Session garbage collection plugin * Session metadata manager * Expand metadata manager to allow all apps, CLI for metadata cleaner * Move metadata cleanup to the plugin * Misc fixes from feedback * Language tweaks * Change to uint filter, if it'll get people to review and accept the damn PR... * Fix mssql installation (#19796) * Prepare 3.8.6 RC1 Release * Reset for dev * Update Greek Installation language files (#19806) * Another typo in Greek (#19816) * checksum extensions light (#17619) * [3.8] - checksum extensions porting checksum extensions from 4.0 * install checksum add install checksum * update checksum add update checksum * lang add lang string * doc block add missing parameter * tab tab * PHP cs * PHP CS * return integer return integer instead of mixed * switch switch inteder * switch switch integer * add CONST and remove sha1/md5 add CONST and remove sha1/md5 * hash algos hash algos * sha256,sh384,sha512 hash algos * alpha order alpha order * fix docbloc fix docbloc * Revert "checksum extensions light (#17619)" (#19873) This reverts commit 4d79fe2. * Update spanish installation language (#19878) * implement check provided by @ggppdk (#19791) * Fix undefined index: password_clear (#19892) * Prepare 3.8.6 release * Reset for development * Fix appveyor builds and bump driver dll version (#19805) * bump driver dll version and add php 7.2 * remove php 7.2 until drivers are available * Use powershell 'Invoke-WebRequest' Workaround When you use appveyor command-line utility to download, its user-agent is empty, Some sites do not allow empty user-agents to download. Use powershell 'Invoke-WebRequest' Workaround until appveyor fixes their command-line utility to have a user agent * Don't have a metadataManager class property to avoid circular dependency problem when instantiating multiple applications (#19912) * typo (#19910) typo * Clear button in article publish date (#17809) * For clear button issue * Update calendar.js * Update module.php * Remove commented line * [com_templates] Rewrote hardcoded SQL to query object (#17921) * rewrote hardcoded SQL to query object * correction in SQL for home field is declared as char/varchar * correction in SQL for home field is declared as char/varchar + ->q() * Break where clauses up * Fix Help URLs and update to Help38 (#19181) * Fix Help URLs * Update to Help38 * Fixed trig on change event (#19538) * [com_content] - fix link when layout and association (#19681) * Date format localise (#19690) * Add new date format LC6 * LC6 * commit 2 * [behavior.formvalidator] - pattern attribute behaviour fix (#19771) * [behavior.formvalidator] - pattern behaviour fix * minify * Fix a subform table layout to be more strict to rows container (#19774) * mod_breadcrumbs. remove JHtml::bootstrap.tooltip (#19787) * Debug plugin style (#19790) * Debug plugin style Wrong css on the buttons for Log Category Mode It should be green for the positive action (include) and red for the negative action (exclude) This simple PR ensures that is the case * oops * Front end menu items translated in error (#19802) * Front end menu items translated in error PR #13606 introduced translatable admin menu item creation but the code didnt check if the menu item was for the frontend or the admin before doing the translation ### Test Instructions 1. Install any additional language eg italian 2. Create a menu item called "Sun" 3. On the list of all the menu items you will see it is displayed as "Dom" - the italian translation 4. Enable language debug 5. On the list of all the menu items you will see all your menu item titles are surrounded by ?? - to indicate no translation found - except for "Dom" which has ** instead to show it has been translated 6. Apply this PR 7. Sun still says Sun 8. There are NO ?? or ** when in language debug mode 9. Bonus - check a custom admin menu item and you will see it can be translated * code style * cs * CodeMirror 5.35.0 (#19809) * Correcting finder feeds items date when language is not English (#19815) * Correcting finder feeds items date when language is not English * typo * [com_ajax] Change modules check (#19818) * Add com_ajax check in getModuleList query * Restore getModuleList query * Change module check inside com_ajax * Categories: Allow sorting by Associations (#19821) * Categories: Allow sorting by Associations * moving assoc sorting after access * Article and contact modal should not use addslashes (#19826) * Menu tems select field: no need to escape string value (#19828) * Allow limiting calendar field to current year (#19846) * Allow locking to min and / or max year to current year * Update calendar.php * Cleared non-set variable notices * Update JHtml::calendar to support relative years limits (#19847) * Simplify switch statement (#19849) * [CS] Code style Fix some inline doc blocks for IDE hinting - round 1 (#19862) * Fix Operator Spacing * Fix inline doc blocks for IDE hinting * Fix some docblocks and comments (#19863) * Custom admin menus: Translating menu items titles (#19900) * adapt default values (#19924) * Use getter method (#19925) * Custom Admin menu item edit: Display Title, Parent Item and Ordering translations (#19916) * Admin menu item edit: Display Title, Parent Item and Ordering translations * Modifs suggested by izharaazmi * cs * display translated title only when item exists * Correcting label alignment * Cosmetic changes * In theory, you may not always be working with the default database. So use the correct one. (#19474) * [plugin][content] - loadmodule by id (#19362) * [plugin][content] - loadmodule by id * [plugin][content] - loadmodule by id * getModuleById * getModuleById * id not found * id not found * simple syntax * js side * modal * minify js * regex only digits * remove title * use static load() * regex * cs * return * cs tabs removed * simplify code * clean code * no style * replace loadmodule with loadmoduleid * cs * replace loadmodule with loadmoduleid * replace * missed echo * moved back * Update loadmodule.php fixed cs * Revert "[plugin][content] - loadmodule by id (#19362)" (#19931) This reverts commit 4172f79. * Category Modal - add notes (#19131) * Category Modal - add notes If you add a note to a category then it is displayed in the category list but not displayed in the category modal (eg when you select a category for a blog menu item) This PR adds the note, alias, and full path (on hover) to the modal to make it consistent with the list view * space * Please consider a blank line preceding your comment (#19936) * Fix typo in editor field (#19938) * [CS] long form function return types; round 1 (#19934) * PHPCS2 - fixes * 2 spaces after * Expected 2 spaces after the longest param type * [libraries][legacy][request] - fix php 7.1 warning not numeric (#19710) * [libraries][legacy][request] - fix php 7.1 warning not numeric * dry * [com_fields] Normalise the request com_fields data (#19884) * Normalise the request com_fields data * CS * PHP 5.3 compat * Fields in com_fields array (#9) Fields should be set in com_fields array and not direcly in $data * Spelling * Also normalise request data on front-end user profile save (#10) * Also normalise request data on front-end user profile save * correct context and option * Handle 0 properly in empty check * Simplify * allowing value 0 to be saved (#11) when setting a value of 0 in a text field the function empty will return true > setting the value to null * correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (#12) * correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true' * Update field.php * Update field.php * [event dispatcher] - use strict comparison (#19907) * [com_users] Fix display of custom field of value 0 (#19933) * [CS] long form function return types; round 2 (#19935) * PHPCS2 Auto Fixes - Expected "boolean" but found "bool" for function return type - Expected "integer" but found "int" for function return type * Manual correction of docBlock spacing * Manual correction of docBlock spacing * Manual correction of docBlock spacing * Manual correction of docBlock spacing * Add some Member var comments * Manual correction of docBlock spacing * Add some Member Var comments * return tag after access tag * 3 spaces after var tag before the type * add tag since 3.1 to Class Properties and align var tags * add tag since 3.1 and align var tag * adjust some tag alignments * Two spaces after type * integer not int * Redirects Plugin - Make Relative or Absolute. (#19942) * Redirects Plugin - Make Relative or Absolute. * Orderiing and capital I. * Update en-GB.plg_system_redirect.ini * Update en-GB.plg_system_redirect.ini updated as per @quys comment. * Update en-GB.plg_system_redirect.ini * Make calendar output usable in other css-frameworks (#19944) * Revert changes expect css * Make calendar output usable in other css-frameworks * A min-width makes look better * Fix for duplicate url check bug introduced by #19734 and support utf8… (#19950) * Fix for duplicate url check bug introduced by #19734 and support utf8 on old_urls. Couldn't find a solution to handle this within mysql. So a simple foreach handles it perfectly. * Update link.php * solved issue number #19930 (#19969) corrected typo to ensure proper checkbox functionality * Removed text-output and enabled a disabled tick box for consistency (#19974) * Change to allow str_pos to match when the exclude term is at the root… (#19979) * Change to allow str_pos to match when the exclude term is at the root of the path * updated redirect.php - clearly I was tired with the first pr. * Fix for #11070 (tag-category) - Improve also views newsfeed-category … (#16627) * Fix for #11070 (tag-category) - Improve also views newsfeed-category and category-list * Correctly modifying .LESS and regenerate .CSS (#16627) * Simple enhancement to allow the user to make all Post Install Messages read (#19958) * Simple enhancement to allow the user to make all Post Install Messages as read. * Update message.php * Update messages.php * Update messages.php * Added onDisplay function for handling the display of the button. * removed blank lines. * updated quotes around ints. As per @alikon comments * Added (int) just to be safe. * Update messages.php * Update messages.php * Update messages.php * [com_mailto] Add missing placeholder (#19999) * Make sure items is an array. (#20000) * Make sure items is an array. Resolved #19998 * Update default_items.php * Update tag.php * Update tag.php * Update tag.php * Update tag.php * [com_fields] Fix fields display HTML prepared 4 or 5 times per article, make it be prepared only twice (#17895) * Pass field displayType (aka event type) to getFields * Update getFields to respect the 'display' parameter of every field * Update onContentPrepare to respect 'display' parameter of every field * Prepare for manual display * Do not create $item->jcfields multiple times * Revert the code for manual display to always prepare the field value * Wrong function name * Fix docblock * Better comment for parameter of getFields method * fix media field in ISIS Template (#17205) * fix media field in ISIS Template * fix media field in ISIS Template * [3.x] New sessiongc plugin is not declared as core plugin for manifest cache refresh (#20038) * add sessiongc plugin to the core plugins * alphasorting thanks @brianteeman * [module] [articles category] filter by multiple tags (#19983) * [module] [articles category] filter by multiple tags * multiple tags * spelling * [com_finder] Remove unused params (#20009) * [com_finder] Unused params * Update en-GB.com_finder.ini * Update sample_learn.sql * Update sample_testing.sql * Update sample_learn.sql * Update sample_testing.sql * Update sample_learn.sql * Update sample_testing.sql * Update jos_menu.csv * Restore and deprecate strings * Two new fonts for CodeMirror: IBM Plex Mono, Nanum Gothic Coding (#20017) * CategoryEdit field published filter (#20018) * Smart Search: Highlighting terms also in fulltext when using readmore (#20019) * Smart Search: Highlighting terms also in fulltext when using readmore * parsing summary + body to get text only * Escape full query in NestedTable debug mode (#20024) * Changed viewname filter in RouteHelper (#20031) * Fix GMail plugin so it doesn't crash and burn on 4.0 upgrades (#20043) * Tweak build script for added flexibility (#19848) * Refresh Manifest Cache failed: Extension is not currently installed (#19560) * Refresh Manifest Cache failed: Extension is not currently installed PR for #17604 Change the message to include the name of the extension. I have no idea how to test this - sorry - only code review - unless someone knows how? * partial revert * revert comment * Remove rtrim() since it allows invalid emails (#20080) * Custom Fields toggle display on read only rights (#20068) * [com_fields] Normalise the request com_fields data (#19884) * Normalise the request com_fields data * CS * PHP 5.3 compat * Fields in com_fields array (#9) Fields should be set in com_fields array and not direcly in $data * Spelling * Also normalise request data on front-end user profile save (#10) * Also normalise request data on front-end user profile save * correct context and option * Handle 0 properly in empty check * Simplify * allowing value 0 to be saved (#11) when setting a value of 0 in a text field the function empty will return true > setting the value to null * correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (#12) * correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true' * Update field.php * Update field.php * Custom fields view on form via toggle on read-only rights * fix back-end new article * first / seperate check on read-only access * refactor code so show_on parameter is part of helper function * implement inherit value in fields + language things * loadmodel only when needed * changed function comment * change values order so default value (inherit) is displayed first * Must use self:: for local static member reference * Fixed page with multiple codemirror editors fields with different syntax highlighting (#20063) * Fix for: Can't choose module using editor plugin if you search first (#20005) * fixit * cs * Update modal.php * Basic check to make sure the bulk import seperator is being used. (#19982) * Basic check to make sure the bulk import seperator is being used. Added Import State function as to how the urls should be imported, enabled or disabled. * force int. * Update config.xml * Update links.php * Update en-GB.com_redirect.ini * Update config.xml * Update links.php * Update en-GB.com_redirect.ini * Update config.xml As per standards i.e: https://github.com/joomla/joomla-cms/blob/staging/administrator/components/com_config/model/form/application.xml i.e. endtag inline with options and closing tag inline with opening tag. * Update links.php * Changed none selected to none, to be used when there are none availab… (#19977) * Changed none selected to none, to be used when there are none available to select and when none are selected. Set select to be readonly is they cannot select any options * Update plugins.php * Update plugins.php * Update en-GB.ini * Update en-GB.ini * Update plugins.php * Update plugins.php * Update plugins.php * Update plugins.php * Update plugins.php Space/tabbing for drone. * Update plugins.php * Corrected bug on empty subject of com_mailto (#19956) * Corrected bug on empty subject If the subject is empty, the posted value is an empty string (exists) so the default value is never added. * Updated code to include null value * text corrections (#20111) * Typo and copy paste error (#20123) Someone couldn't spell and then someone else must have copy pasted the error No idea how to test but this has been wrong since 3.5 * correct the use of the use command and move it below the defined command (#20130) * Prepare 3.8.7 RC * Reset for dev * Add a security policy (#20163) * Add a security policy Many projects now add a SECURITY.md document to their repository. Often this is related to using HackerOne but not always. This PR adds a policy to our github repo. It is based on the existing policy on the d.j.o web site The file doesn't need to be distributed so it has been added to the exclude list in the github repo. * tweek * copy paste * Update SECURITY.md * Update SECURITY.md * Prepare 3.8.7 release * Reset for dev * Introduce CODEOWNERS (#20137) * Tidy writeDynaList() (#12184) * Cleaned writeDynaList() in core.js * Removed explanation comments * removed all API changes * updated compressed core.js * [fix] publish/unpublish does not work with tables using null as default checked_out value (#20204) * Fix overwrite by .table-striped (#20180) Fix overwrite by administrator/templates/isis/css/template.css line 1787 table.table-striped tbody > tr:nth-child(odd) > td, table.table-striped tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } * Fix overwrite by .table-striped (#20179) Fix overwrite by administrator/templates/isis/css/template.css line 1787 table.table-striped tbody > tr:nth-child(odd) > td, table.table-striped tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } * Tooltips not loading com_users (#20177) The edit profile form is not loading the bootstrap tooltip code. So any tooltip (not popovers) are displayed as html as seen in the screenshot below when TFA is enabled. This was spotted by @o2tsen and @sandewt while testing #20051 but as it is a bug effecting more than that PR I have created a new PR. (a pr should only fix one problem) * [a11y] Headings consecutive order Debug Console (#20167) > Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation. > Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example. Source (https://www.w3.org/WAI/tutorials/page-structure/headings/) The headings were probably chosen for cosmetic reasons and not structural reasons which they should have been This PR changes the heading in the debug console from h1 to h2 There is a very small visual change as a result but imho the benefits outweigh the small cost * [a11y] Headings consecutive order (#20166) * [WIP] [a11y] Headings consecutive order > Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation. > Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a <h2> is not followed directly by an <h4>, for example. Source (https://www.w3.org/WAI/tutorials/page-structure/headings/) This PR changes the heading in the plugin and modules from h3 to h2 and in the template styles to h4 ### todo joomla.edit.item_title layout uses h4 but before I change it I need to check everywhere that it is being used * layout * Fix typos in InstallerControllerUpdate (#20154) * Fix typos in InstallerControllerUpdate * Fix same error on other places. Thanks @Quy * Remove similar unnecessary code * Revert "Remove similar unnecessary code" This reverts commit 56410c0. * One more * Revert "One more" This reverts commit aa1b101. * [com_contact] Don't hide contact filter form (#20126) * Update default_items.php * Correct implode order. * Codestyle * More codestyle * Fix for JUserHelper::addUserToGroup() when user group title is a number. (#20091) * Update UserHelper.php * Update UserHelper.php * Fix count() in PHP 7.2 (#20044) * [com_content][Multilanguage] - remove duplicated queries (#19683) * [com_content][Multilanguage] - remove duplicated queries * cs * add $db->qn() * removed () * Make CodeMirror work in repeatable subforms (#12542) * One function to initialize any and all CodeMirror instances rather than individual functions to initialize one-by-one. Call on page load and also on subform-row-add * Minor js changes * Codemirror fullscreen modifier message (do we still need this?) * Call the popover init function when creating new subform rows. (#20222) * Call the popover init function when creating new subform rows. * Update teh popover test * [a11y] post-installation message in control panel (#20220) > Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation. > Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example. Source (https://www.w3.org/WAI/tutorials/page-structure/headings/) The heading was probably chosen for cosmetic reasons and not structural reasons which they should have been This PR changes the heading for the post-installtion message i the control panel from h4 to h3 There is a very small visual change as a result but imho the benefits outweigh the small cost * Solves issue #20195 (#20214) * [plugin][search][content] give priority on result when title is matched (#20197) * [plugin][search][content] give priority on result when title is matched * Missed comma * Add relevance weighting according to number of words * Relevance by number of words in title only, removed introtext relevance * Fix order string concatenation * You've Got Mail (#20162) * You've Got Mail Since 2003 the internet has changed. We no longer get a message to say that we have a message. Instead we just give you the message. You probably never use the messages component (especially for private message to a specific user) as they are the equivalent of https://www.youtube.com/watch?v=gFBLiHpkcOk The Joomla com_messages component is used in two instances 1. Notification of a new article 2. Sending a message to another user ### Current email for Notification of a new article Subject: A new private message has arrived from [sitename] Body: > Please log in to [link] to read your message. ### New email for Notification of a new article Subject: New message from [user] at [sitename] Body: > New Article A new Article has been submitted by 'user' entitled 'blog post'. > Please log in to [link] to read your message. ### Current email when sending a message to another user Subject: A new private message has arrived from [sitename] Body: > Please log in to [link] to read your message. ### New email when sending a message to another user Subject: New message from [user] at [sitename] Body: > [subject] [message] [login link] ## Backwards Compatibility No issues. The message contains the old login message PLUS the content of the message. So if you were using this message in a custom workflow there is no change required to that workflow * subj * cs * add new string and mark existing string for deprecation * Support Codemirror's included key mappings (#19833) * Support Codemirror's included key mappings * Use a list instead of radio buttons * Don't expose LDAP authentication usage. (#18531) * Don't expose LDAP authentication usage. * Use new language strings for LDAP authentication. * remove bind string * remove bind string * use connect string * alpha order * alpha order * Handle the case that JFolder::files returns 'false' (#11715) * Initialize tooltips when a new a row is added in a subform (#12996) * Initialize tooltips when a new a row is added in a subform * Fix a test since the init function has changed * Replace htaccess which was removed inexplicably * Missing space (#20260) * Tiny JLanguage::loadLanguage() code improvement (#20257) * [com_content] Remove redundant check (#20254) * Update articles.php (#20245) * [com_config] Capitalize label (#20299) * Implement Issue Templates as discussen in #20298 #20298 * [fix] openbase_dir processing (#20280) * CodeMirror updated to version 5.37.0 (#20269) * Use title from menu item (#20267) * Change the defaults for new installs to disable com_mailto in articles (#20266) * change the defaults for new installs to disable com_mailto in articles * change more defaults to 0 thanks @Quy * Don't enable sending the PW on new installs (#20247) * disable plaun pw sending per default on new installs * make sure we have to set a PW when we dont send the plain pw via mail * chagne the default in the xml to thanks @Quy * update the sample data thanks @Quy * make sure the mail to user does not include the PW too * Revert "make sure the mail to user does not include the PW too" This reverts commit 9095819. * address comments by @Bakual thanks * Optimization and fix of multilingual associations and add layouts to com_content links (#20229) * Revert #19681 * Revert #19683 * Remove addition query and check after #19314 * Add layout to com_content links * Add layout to com_content article associations * Add layout to category associations * add advanced where clause param * add advanced where clause for com_content article associations * drone code formatting fix * drone code formatting fix * drone code formatting fix * Line exceeds 150 characters * PHPCS rules * Remove parenthesis * Change queryKey * Fix typo * Improve description * Add checksum generation to the build script * Replace "label" classes with the new "badge" ones * Replace "label" classes with the new "badge" ones * Siwtch back comment about labels * Revert "Merge branch 'staging' into 4.0-dev" This reverts commit 831e986, reversing changes made to b8c7f7f. * Replace label classes on js files * Replace missing label classes * Use the "danger" to replace "important" in badges * Use the "danger" to replace "important" in badges * Replace label classes on a language file
* [com_ajax] Change modules check (joomla#19818) * Add com_ajax check in getModuleList query * Restore getModuleList query * Change module check inside com_ajax * Categories: Allow sorting by Associations (joomla#19821) * Categories: Allow sorting by Associations * moving assoc sorting after access * Article and contact modal should not use addslashes (joomla#19826) * Menu tems select field: no need to escape string value (joomla#19828) * Allow limiting calendar field to current year (joomla#19846) * Allow locking to min and / or max year to current year * Update calendar.php * Cleared non-set variable notices * Update JHtml::calendar to support relative years limits (joomla#19847) * Simplify switch statement (joomla#19849) * [CS] Code style Fix some inline doc blocks for IDE hinting - round 1 (joomla#19862) * Fix Operator Spacing * Fix inline doc blocks for IDE hinting * Fix some docblocks and comments (joomla#19863) * Custom admin menus: Translating menu items titles (joomla#19900) * adapt default values (joomla#19924) * Use getter method (joomla#19925) * Custom Admin menu item edit: Display Title, Parent Item and Ordering translations (joomla#19916) * Admin menu item edit: Display Title, Parent Item and Ordering translations * Modifs suggested by izharaazmi * cs * display translated title only when item exists * Correcting label alignment * Cosmetic changes * In theory, you may not always be working with the default database. So use the correct one. (joomla#19474) * [plugin][content] - loadmodule by id (joomla#19362) * [plugin][content] - loadmodule by id * [plugin][content] - loadmodule by id * getModuleById * getModuleById * id not found * id not found * simple syntax * js side * modal * minify js * regex only digits * remove title * use static load() * regex * cs * return * cs tabs removed * simplify code * clean code * no style * replace loadmodule with loadmoduleid * cs * replace loadmodule with loadmoduleid * replace * missed echo * moved back * Update loadmodule.php fixed cs * Revert "[plugin][content] - loadmodule by id (joomla#19362)" (joomla#19931) This reverts commit 4172f79. * Category Modal - add notes (joomla#19131) * Category Modal - add notes If you add a note to a category then it is displayed in the category list but not displayed in the category modal (eg when you select a category for a blog menu item) This PR adds the note, alias, and full path (on hover) to the modal to make it consistent with the list view * space * Please consider a blank line preceding your comment (joomla#19936) * Fix typo in editor field (joomla#19938) * [CS] long form function return types; round 1 (joomla#19934) * PHPCS2 - fixes * 2 spaces after * Expected 2 spaces after the longest param type * [libraries][legacy][request] - fix php 7.1 warning not numeric (joomla#19710) * [libraries][legacy][request] - fix php 7.1 warning not numeric * dry * [com_fields] Normalise the request com_fields data (joomla#19884) * Normalise the request com_fields data * CS * PHP 5.3 compat * Fields in com_fields array (joomla#9) Fields should be set in com_fields array and not direcly in $data * Spelling * Also normalise request data on front-end user profile save (joomla#10) * Also normalise request data on front-end user profile save * correct context and option * Handle 0 properly in empty check * Simplify * allowing value 0 to be saved (joomla#11) when setting a value of 0 in a text field the function empty will return true > setting the value to null * correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (joomla#12) * correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true' * Update field.php * Update field.php * [event dispatcher] - use strict comparison (joomla#19907) * [com_users] Fix display of custom field of value 0 (joomla#19933) * [CS] long form function return types; round 2 (joomla#19935) * PHPCS2 Auto Fixes - Expected "boolean" but found "bool" for function return type - Expected "integer" but found "int" for function return type * Manual correction of docBlock spacing * Manual correction of docBlock spacing * Manual correction of docBlock spacing * Manual correction of docBlock spacing * Add some Member var comments * Manual correction of docBlock spacing * Add some Member Var comments * return tag after access tag * 3 spaces after var tag before the type * add tag since 3.1 to Class Properties and align var tags * add tag since 3.1 and align var tag * adjust some tag alignments * Two spaces after type * integer not int * Redirects Plugin - Make Relative or Absolute. (joomla#19942) * Redirects Plugin - Make Relative or Absolute. * Orderiing and capital I. * Update en-GB.plg_system_redirect.ini * Update en-GB.plg_system_redirect.ini updated as per @quys comment. * Update en-GB.plg_system_redirect.ini * Make calendar output usable in other css-frameworks (joomla#19944) * Revert changes expect css * Make calendar output usable in other css-frameworks * A min-width makes look better * Fix for duplicate url check bug introduced by joomla#19734 and support utf8… (joomla#19950) * Fix for duplicate url check bug introduced by joomla#19734 and support utf8 on old_urls. Couldn't find a solution to handle this within mysql. So a simple foreach handles it perfectly. * Update link.php * solved issue number joomla#19930 (joomla#19969) corrected typo to ensure proper checkbox functionality * Removed text-output and enabled a disabled tick box for consistency (joomla#19974) * Change to allow str_pos to match when the exclude term is at the root… (joomla#19979) * Change to allow str_pos to match when the exclude term is at the root of the path * updated redirect.php - clearly I was tired with the first pr. * Fix for joomla#11070 (tag-category) - Improve also views newsfeed-category … (joomla#16627) * Fix for joomla#11070 (tag-category) - Improve also views newsfeed-category and category-list * Correctly modifying .LESS and regenerate .CSS (joomla#16627) * Simple enhancement to allow the user to make all Post Install Messages read (joomla#19958) * Simple enhancement to allow the user to make all Post Install Messages as read. * Update message.php * Update messages.php * Update messages.php * Added onDisplay function for handling the display of the button. * removed blank lines. * updated quotes around ints. As per @alikon comments * Added (int) just to be safe. * Update messages.php * Update messages.php * Update messages.php * [com_mailto] Add missing placeholder (joomla#19999) * Make sure items is an array. (joomla#20000) * Make sure items is an array. Resolved joomla#19998 * Update default_items.php * Update tag.php * Update tag.php * Update tag.php * Update tag.php * [com_fields] Fix fields display HTML prepared 4 or 5 times per article, make it be prepared only twice (joomla#17895) * Pass field displayType (aka event type) to getFields * Update getFields to respect the 'display' parameter of every field * Update onContentPrepare to respect 'display' parameter of every field * Prepare for manual display * Do not create $item->jcfields multiple times * Revert the code for manual display to always prepare the field value * Wrong function name * Fix docblock * Better comment for parameter of getFields method * fix media field in ISIS Template (joomla#17205) * fix media field in ISIS Template * fix media field in ISIS Template * [3.x] New sessiongc plugin is not declared as core plugin for manifest cache refresh (joomla#20038) * add sessiongc plugin to the core plugins * alphasorting thanks @brianteeman * [module] [articles category] filter by multiple tags (joomla#19983) * [module] [articles category] filter by multiple tags * multiple tags * spelling * [com_finder] Remove unused params (joomla#20009) * [com_finder] Unused params * Update en-GB.com_finder.ini * Update sample_learn.sql * Update sample_testing.sql * Update sample_learn.sql * Update sample_testing.sql * Update sample_learn.sql * Update sample_testing.sql * Update jos_menu.csv * Restore and deprecate strings * Two new fonts for CodeMirror: IBM Plex Mono, Nanum Gothic Coding (joomla#20017) * CategoryEdit field published filter (joomla#20018) * Smart Search: Highlighting terms also in fulltext when using readmore (joomla#20019) * Smart Search: Highlighting terms also in fulltext when using readmore * parsing summary + body to get text only * Escape full query in NestedTable debug mode (joomla#20024) * Changed viewname filter in RouteHelper (joomla#20031) * Fix GMail plugin so it doesn't crash and burn on 4.0 upgrades (joomla#20043) * Tweak build script for added flexibility (joomla#19848) * Refresh Manifest Cache failed: Extension is not currently installed (joomla#19560) * Refresh Manifest Cache failed: Extension is not currently installed PR for joomla#17604 Change the message to include the name of the extension. I have no idea how to test this - sorry - only code review - unless someone knows how? * partial revert * revert comment * Remove rtrim() since it allows invalid emails (joomla#20080) * Custom Fields toggle display on read only rights (joomla#20068) * [com_fields] Normalise the request com_fields data (joomla#19884) * Normalise the request com_fields data * CS * PHP 5.3 compat * Fields in com_fields array (joomla#9) Fields should be set in com_fields array and not direcly in $data * Spelling * Also normalise request data on front-end user profile save (joomla#10) * Also normalise request data on front-end user profile save * correct context and option * Handle 0 properly in empty check * Simplify * allowing value 0 to be saved (joomla#11) when setting a value of 0 in a text field the function empty will return true > setting the value to null * correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (joomla#12) * correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true' * Update field.php * Update field.php * Custom fields view on form via toggle on read-only rights * fix back-end new article * first / seperate check on read-only access * refactor code so show_on parameter is part of helper function * implement inherit value in fields + language things * loadmodel only when needed * changed function comment * change values order so default value (inherit) is displayed first * Must use self:: for local static member reference * Fixed page with multiple codemirror editors fields with different syntax highlighting (joomla#20063) * Fix for: Can't choose module using editor plugin if you search first (joomla#20005) * fixit * cs * Update modal.php * Basic check to make sure the bulk import seperator is being used. (joomla#19982) * Basic check to make sure the bulk import seperator is being used. Added Import State function as to how the urls should be imported, enabled or disabled. * force int. * Update config.xml * Update links.php * Update en-GB.com_redirect.ini * Update config.xml * Update links.php * Update en-GB.com_redirect.ini * Update config.xml As per standards i.e: https://github.com/joomla/joomla-cms/blob/staging/administrator/components/com_config/model/form/application.xml i.e. endtag inline with options and closing tag inline with opening tag. * Update links.php * Changed none selected to none, to be used when there are none availab… (joomla#19977) * Changed none selected to none, to be used when there are none available to select and when none are selected. Set select to be readonly is they cannot select any options * Update plugins.php * Update plugins.php * Update en-GB.ini * Update en-GB.ini * Update plugins.php * Update plugins.php * Update plugins.php * Update plugins.php * Update plugins.php Space/tabbing for drone. * Update plugins.php * Corrected bug on empty subject of com_mailto (joomla#19956) * Corrected bug on empty subject If the subject is empty, the posted value is an empty string (exists) so the default value is never added. * Updated code to include null value * text corrections (joomla#20111) * Typo and copy paste error (joomla#20123) Someone couldn't spell and then someone else must have copy pasted the error No idea how to test but this has been wrong since 3.5 * correct the use of the use command and move it below the defined command (joomla#20130) * Prepare 3.8.7 RC * Reset for dev * Add a security policy (joomla#20163) * Add a security policy Many projects now add a SECURITY.md document to their repository. Often this is related to using HackerOne but not always. This PR adds a policy to our github repo. It is based on the existing policy on the d.j.o web site The file doesn't need to be distributed so it has been added to the exclude list in the github repo. * tweek * copy paste * Update SECURITY.md * Update SECURITY.md * Prepare 3.8.7 release * Reset for dev * Introduce CODEOWNERS (joomla#20137) * Tidy writeDynaList() (joomla#12184) * Cleaned writeDynaList() in core.js * Removed explanation comments * removed all API changes * updated compressed core.js * [fix] publish/unpublish does not work with tables using null as default checked_out value (joomla#20204) * Fix overwrite by .table-striped (joomla#20180) Fix overwrite by administrator/templates/isis/css/template.css line 1787 table.table-striped tbody > tr:nth-child(odd) > td, table.table-striped tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } * Fix overwrite by .table-striped (joomla#20179) Fix overwrite by administrator/templates/isis/css/template.css line 1787 table.table-striped tbody > tr:nth-child(odd) > td, table.table-striped tbody > tr:nth-child(odd) > th { background-color: #f9f9f9; } * Tooltips not loading com_users (joomla#20177) The edit profile form is not loading the bootstrap tooltip code. So any tooltip (not popovers) are displayed as html as seen in the screenshot below when TFA is enabled. This was spotted by @o2tsen and @sandewt while testing joomla#20051 but as it is a bug effecting more than that PR I have created a new PR. (a pr should only fix one problem) * [a11y] Headings consecutive order Debug Console (joomla#20167) > Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation. > Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example. Source (https://www.w3.org/WAI/tutorials/page-structure/headings/) The headings were probably chosen for cosmetic reasons and not structural reasons which they should have been This PR changes the heading in the debug console from h1 to h2 There is a very small visual change as a result but imho the benefits outweigh the small cost * [a11y] Headings consecutive order (joomla#20166) * [WIP] [a11y] Headings consecutive order > Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation. > Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a <h2> is not followed directly by an <h4>, for example. Source (https://www.w3.org/WAI/tutorials/page-structure/headings/) This PR changes the heading in the plugin and modules from h3 to h2 and in the template styles to h4 ### todo joomla.edit.item_title layout uses h4 but before I change it I need to check everywhere that it is being used * layout * Fix typos in InstallerControllerUpdate (joomla#20154) * Fix typos in InstallerControllerUpdate * Fix same error on other places. Thanks @Quy * Remove similar unnecessary code * Revert "Remove similar unnecessary code" This reverts commit 56410c0. * One more * Revert "One more" This reverts commit aa1b101. * [com_contact] Don't hide contact filter form (joomla#20126) * Update default_items.php * Correct implode order. * Codestyle * More codestyle * Fix for JUserHelper::addUserToGroup() when user group title is a number. (joomla#20091) * Update UserHelper.php * Update UserHelper.php * Fix count() in PHP 7.2 (joomla#20044) * [com_content][Multilanguage] - remove duplicated queries (joomla#19683) * [com_content][Multilanguage] - remove duplicated queries * cs * add $db->qn() * removed () * Make CodeMirror work in repeatable subforms (joomla#12542) * One function to initialize any and all CodeMirror instances rather than individual functions to initialize one-by-one. Call on page load and also on subform-row-add * Minor js changes * Codemirror fullscreen modifier message (do we still need this?) * Call the popover init function when creating new subform rows. (joomla#20222) * Call the popover init function when creating new subform rows. * Update teh popover test * [a11y] post-installation message in control panel (joomla#20220) > Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation. > Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example. Source (https://www.w3.org/WAI/tutorials/page-structure/headings/) The heading was probably chosen for cosmetic reasons and not structural reasons which they should have been This PR changes the heading for the post-installtion message i the control panel from h4 to h3 There is a very small visual change as a result but imho the benefits outweigh the small cost * Solves issue joomla#20195 (joomla#20214) * [plugin][search][content] give priority on result when title is matched (joomla#20197) * [plugin][search][content] give priority on result when title is matched * Missed comma * Add relevance weighting according to number of words * Relevance by number of words in title only, removed introtext relevance * Fix order string concatenation * You've Got Mail (joomla#20162) * You've Got Mail Since 2003 the internet has changed. We no longer get a message to say that we have a message. Instead we just give you the message. You probably never use the messages component (especially for private message to a specific user) as they are the equivalent of https://www.youtube.com/watch?v=gFBLiHpkcOk The Joomla com_messages component is used in two instances 1. Notification of a new article 2. Sending a message to another user ### Current email for Notification of a new article Subject: A new private message has arrived from [sitename] Body: > Please log in to [link] to read your message. ### New email for Notification of a new article Subject: New message from [user] at [sitename] Body: > New Article A new Article has been submitted by 'user' entitled 'blog post'. > Please log in to [link] to read your message. ### Current email when sending a message to another user Subject: A new private message has arrived from [sitename] Body: > Please log in to [link] to read your message. ### New email when sending a message to another user Subject: New message from [user] at [sitename] Body: > [subject] [message] [login link] ## Backwards Compatibility No issues. The message contains the old login message PLUS the content of the message. So if you were using this message in a custom workflow there is no change required to that workflow * subj * cs * add new string and mark existing string for deprecation * Support Codemirror's included key mappings (joomla#19833) * Support Codemirror's included key mappings * Use a list instead of radio buttons * Don't expose LDAP authentication usage. (joomla#18531) * Don't expose LDAP authentication usage. * Use new language strings for LDAP authentication. * remove bind string * remove bind string * use connect string * alpha order * alpha order * Handle the case that JFolder::files returns 'false' (joomla#11715) * Initialize tooltips when a new a row is added in a subform (joomla#12996) * Initialize tooltips when a new a row is added in a subform * Fix a test since the init function has changed * Replace htaccess which was removed inexplicably * Missing space (joomla#20260) * Tiny JLanguage::loadLanguage() code improvement (joomla#20257) * [com_content] Remove redundant check (joomla#20254) * Update articles.php (joomla#20245) * [com_config] Capitalize label (joomla#20299) * Implement Issue Templates as discussen in joomla#20298 joomla#20298 * [fix] openbase_dir processing (joomla#20280) * CodeMirror updated to version 5.37.0 (joomla#20269) * Use title from menu item (joomla#20267) * Change the defaults for new installs to disable com_mailto in articles (joomla#20266) * change the defaults for new installs to disable com_mailto in articles * change more defaults to 0 thanks @Quy * Don't enable sending the PW on new installs (joomla#20247) * disable plaun pw sending per default on new installs * make sure we have to set a PW when we dont send the plain pw via mail * chagne the default in the xml to thanks @Quy * update the sample data thanks @Quy * make sure the mail to user does not include the PW too * Revert "make sure the mail to user does not include the PW too" This reverts commit 9095819. * address comments by @Bakual thanks * Optimization and fix of multilingual associations and add layouts to com_content links (joomla#20229) * Revert joomla#19681 * Revert joomla#19683 * Remove addition query and check after joomla#19314 * Add layout to com_content links * Add layout to com_content article associations * Add layout to category associations * add advanced where clause param * add advanced where clause for com_content article associations * drone code formatting fix * drone code formatting fix * drone code formatting fix * Line exceeds 150 characters * PHPCS rules * Remove parenthesis * Change queryKey * Fix typo * Improve description * Add checksum generation to the build script * Hide Enabled/Disabled users column headers and be a11y compliant (joomla#20279) * Code mirror autofocus issue (joomla#20270) * Pass the autofocus param to the plugin. While we're at it, pretty up this function a little. * Get autofocus from $params, not $this->params. Also, make sure we only autofocus one CodeMirror per page. * We won't be needing these things anymore. * Keep the unused strings. * Add a deprecated flag in database query for a few union/unionAll/unionDistinct (joomla#20219) * Add showon attribute (joomla#20156) * [com_contact] Display 0 value with custom field (joomla#20124) * Display 0 value * Display 0 value * fix custom fields with tab format (joomla#20023) * Show a sample editor on the CodeMirror plugin config page. (joomla#17042) * Show a sample editor on the CodeMirror plugin config page. * Call it a 'Preview' * Reordered attributes as per the Joomla coding standards for xml * hiddenFieldsets & configFieldsets needs to be defined (joomla#16856) * hiddenFieldsets & configFieldsets needs to be defined * use getter * Fix subform repeat counter. (joomla#19693) * Fix subform repeat counter. As normal rows should be zero indexed. When length === count === 0, first row should be 0. Note: PHP creates existing rows with zero index - so if min=1, you currently get row 0 on form load then row 2, 3 etc. as you add them. * Update unit tests * Additional test fixes. * Fix typo in comment. * Reminify subform-repeatable.js * Fixing so that editors-xtd plugins works with com_ajax (joomla#17939) * Fixing so that editors-xtd plugins works with com_ajax * Code formatting fix * [Plugins] Add filters to manifest files. (joomla#20410) * URL Menu Item Type link should be required. (joomla#20392) * Fix up the protostar template.js (joomla#20224) Don't use unnecessary closure, just use jQuery ready function. Use javsacript strict mode use event delegation where possible Make tooltips and button groups work properly with repeatable subforms * Bootstrap alert compatible (joomla#18909) * Bootstrap alert compatible Alert compatibility with new Bootstrap versions. * Strict comparison * Bootstrap alert compatible minified file Alert compatibility with new Bootstrap versions. * Add PHP 7.3 polyfill (joomla#20441) * [com_finder] Fix regression joomla#19969 (joomla#20411) * [com_finder] - fix update inner join syntax for postgres (joomla#19964) * [com_finder] - fix update inner join syntax for postgres * drone fix cs * quoteName vs qn * cs * Update tag.php (joomla#19951) There is a bug in getItem, the function parameter is called $pk, but in code it is using $id, so whenever the parameter is passed it is not used in the function. * Change the Administrator group's filtering to use the default blacklist * Add postinstall message explaining revised default settings * Prepare 3.8.8 Release Candidate * Reset for dev * Typo in nl-NL installation language file (joomla#20460) * Update joomla/filter package * Update joomla/application package * Store plaintext passwords in a separate options key, do not display passwords on summary page * Prepare 3.8.8 release * When JFeed was moved, old files were never deleted * Reset for dev * Correctly escape the random image module output (joomla#20533) * Finally com_mailto allow the usage of a captcha by using JForm (joomla#20265) * finaly com_mailto allow the usage of a captach by using JForm * remove unused $session variable * Line ending to LF * fix typo thanks @brianteeman * no need to use set and get thanks @mbabker * expend the popup & fix the auto population thanks @Quy * captcha handling * fix the captcha check * commit header check thanks for reporting @brianteeman @mbabaker and for the improved code @Quy * style changes affected hight thanks @brianteeman * line ending again * close <fieldset> thanks @Quy * make the iframe a bit bigger thnks @Quy * commit proposed changes by @Quy * implement suggested improvments * use <?php echo $field->renderField(); ?> thanks @laoneo * Remove check for a valid form from two places in plugins (joomla#20277) * If that is not a valid form our system is broken at all * Typehint the form argument * Fallback to integer (joomla#20338) * [plg_user_profile] Misc fixes (joomla#20412) * Update profile.xml * Update profile.xml * Update profile.php * Update tos.php * [plg_fields] Manifest cleanup, filters, Editor plugin fix (joomla#20422) * Update calendar.xml * Update checkboxes.xml * Update checkboxes.xml * Update editor.xml * Update editor.xml * Update editor.php * Update imagelist.xml * Update imagelist.xml * Update integer.xml * Update integer.xml * Update list.xml * Update list.xml * Update media.xml * Update radio.xml * Update radio.xml * Update checkboxes.xml * Update list.xml * Update sql.xml * Update sql.xml * Update textarea.xml * Update textarea.xml * Update url.xml * Update url.xml * Update usergrouplist.xml * Update usergrouplist.xml * Restore empty value * [plg_system] Manifest file filters (joomla#20456) * [CS] fix some doc comment types (joomla#20522) * PHPCS2 manual fixes - Variables passed by reference should not have the `&` prefixed in the doc comment - Joomla.Commenting.FunctionComment.MissingParamTag - Joomla.Commenting.FunctionComment.ParamNameNoMatch - correct return statement * exclude administrator/components/ folder "Having a "&" in the docblock (whether it's in front of the type or name) is not valid. References are to be expressed solely by the function/method declaration." so we need to exclude this sniff while we trasition to the PHPCS 2.x version * [styles] Fix checkboxes/buttons not clickable under Menu Assignment in Chrome (joomla#20542) * Remove css * Remove css * Remove css rtl * cs * [Regression] Menu item type url with rel attribute nofollow (joomla#19949) * Menu item url attribute rel nofollow with target blank * logic * cs * cs fix - thx Quy * concat * To many elements to index (joomla#13868) * To many elements to index I don't know why in the query `#__tags` is twice. Once as a `a` and second time as a `b`. For me it works perfectly when we remove `b`. I had a problem with this - for 1100 tags on my websites, Smart Search Indexer found more than 1233000 items to index. * Mistake with query I corrected a bug with calling the `#__tags` table in the query. * Update joomla/filter package (joomla#20579 and joomla#20580) * Fix folder browsing and file upload that broke in 3.8.8 due to escaping (joomla#20586) * Fix de-escaping of slash in folder name * code style * Update popup-imagemanager.js * standardise contact strings (joomla#20577) as spotted by @MartijnMaandag * Enable to change FormData in com_menu (joomla#20313) * Set as object to allow for alterations * Cast to object directly * fix typo in installation string (joomla#20607) It is IN each catefgory not ON each category INSTL_DEFAULTLANGUAGE_INSTALL_LOCALISED_CONTENT_DESC="If active, Joomla will automatically create one content category per each installed language. Also, one featured article with dummy content will be created in each category." * Resync deleted files list back to 1.7.3 tag (joomla#20564) * Add additional check that view exists before proceeding (joomla#18757) * Add additional check that view exists before proceeding We assume the array key exists with view but not ID. I have come across some installations where view does not exist and it causes php warnings. So just check it does exist before actually proceeding further as we do with ID. * Update legacyrouter.php * Update legacyrouter.php * Default installation value in configuration.php-dist (joomla#20655) * Default installation value in configuration.php-dist The config file to use in manual installs has incorrect advice and paths for tmp and logs as they are referring to server paths and not paths within a joomla installation * oops * CodeMirror updated to 5.38.0 (joomla#20636) * Bump Composer dependencies (joomla#20583) * Bump Composer dependencies * Bad user data * Try changing test to fix PHP 5.3 behavior * Another attempt at fixing this * Try upstream changes without tag yet * Back to empty array * Now with release tag * Update app package with UA fix * [fix] Error decoding JSON data: Syntax error (joomla#20663) * [fix] Error decoding JSON data: Syntax error * [test] ensure that empty params do not cause user loading issues * Don't try to json_decode() a null value (joomla#20675) * Don't try to json_decode() a null value * Add Registry package fix to make sure broken code can continue to work * Joomla\CMS\Categories\Categories fix (joomla#20680) A constructor can't return a value. * [CS] fix some doc comment types (round 2) (joomla#20647) * PHPCS2 manual changes - Doc comment for parameter does not match actual variable name - Comment closer must be on a new line (just convert to single line comment) - be more specific with the rules we want to exclude * fix spaces Expected only 2 spaces after the longest variable name * one more fix for doc comment - Doc comment for parameter does not match actual variable name * [Newsfeeds] Use item link instead of guid. (joomla#20717) * Feed links * Restore http check for now * CS * Some cleanups * Verb wrong tense (joomla#20708) * Verb wrong tense Clearly using the present tense is incorrect for an error message and it should be the past tense * no error * Replace UCMType::getType() by UCMType::getTypeByAlias($this->alias) (joomla#20672) * JTableAsset::loadByName(): replace two sql queries by one (joomla#20671) * Display 404 page if banner not found (joomla#20664) * Update strings (joomla#20591) * Fix stale session data wrongly overriding configuration file when editing global configuration (joomla#20590) * Fix stale session data wrongly overriding configuration file when editing global configuration * Use $this variable * [com_menus] - fix php warning (joomla#18471) * Singular not plural (joomla#20751) * Singular not plural Obvious correction. sorry I dont know what I did to display the error. * Update en-GB.mod_sampledata.ini * [com_tags] Image caption in Tags view (joomla#20648) * Put all build packages in one directory (joomla#20745) * [com_tags] Tagged item link in feed (joomla#20723) * [com_tags] Tagged item feed links * Nesting error * [mod_tags_similar] Link cleanup (joomla#20730) * [mod_tags_similar] Link cleanup * CS * Com_finder meta data (joomla#20772) * Com_finder meta data com_finder aka smart search was not following any meta data set in the menu item #### to test - setup and configure smart search - create a menu item for smart search and set the meta description and meta keywords - open the menu item on the front end - check source and the meta data set in the menu is not present - do a search - check source and the meta data has been generated from the search Apply this PR - open the menu item on the front end - check source and the meta data set in the menu is present - do a search - check source and the meta data has been generated from the search * remove copy paste error * Add UTF-8 encoding to phpcs in .drone.yml (joomla#20769) * Login to view the article redirect fix (joomla#20732) Without the view=login parameter JRoute can not resolve the Itemid. So the menu item assigned to 'login' is not active. Seems there is a related hack here: /com_content/views/article/tmpl/default.php ~line 143 This can also cause problems with third party extensions like sh404sef. * Mouse over edit - rename (joomla#20743) At the time this feature was introduced we weren't happy with the name "Mouse over edit" but couldn't really think of anything else. I believe that today the term "inline editing" is far more understood and is a more appropriate name * Better mode autoloading. (joomla#20746) * Respect access of editor plugin inside profile form (joomla#20713) * Respect access of editor plugin inside profile form * Use value string 'true', '*' instead of integer for useaccess parameter * Additional Escaping Of Paths In com_media (joomla#20616) * Additional Escaping Of Paths In com_media * Additional Override Escaping * carefully revert some escaping (security) * more specific and special reverse encoding of slash * C&P Error * [com_tags] Images in Tagged Items view (joomla#20601) * [com_contenthistory] - fix for not delete keep forever items (joomla#20430) * [com_contenthistory] - fix for not delete kepp forever items * don't stop delete * cs * cs removed spaces at end of line * Fixing com_fields integration in com_contact (joomla#20413) * Fixing com_fields integration Custom fields in com_contact currently doesnt work propertly. Chosing a category on which they should appear doesn't work cause fields plugin has no informations about contact catid as not data is passed to form when contact form is displayed. This fixes it. * Fixing code style * Removing whitespace, fixing spelling * enable mod_sampledata extension * [ModuleHelper] owncache param as integer (joomla#20626) * Changed return 0 to continue To prevent the entire function to quit, it just needs to go to the next file. Fix joomla#17954 * [mod_articles_category] Fatal error (joomla#20834) * Prepare 3.8.9 Release Candidate * Reset for dev * Very small language file cs (joomla#20844) * Whitelist allowed global access * Bump joomla/input package * Use new method for dynamically resolving Input based on request method * Prepare 3.8.9 release * Reset for development * Fix the autoloader for Windows platforms (joomla#20877) * Prepare 3.8.10 release * Reset for dev, again * Don't delete file that is still in use (Fix joomla#20881) * [plg_user_profile] Add RTL check to ToS field * FIX: Install Languages Manager language badges wrongly set to not match since upgrade to 3.8.10 (joomla#20906) * FIX: Install Languages Manager language badges wrongly set to not match since upgrade to 3.8.10 * Correcting Installed languages too * Replace the URL parameter "limitstart=0" with "start=0" if the SEF mode is on (joomla#19452) * Replace &limitstart=0 to &start=0 if SEF is ON * Replace URL param start=x to limitstart=x even if start is 0 * Remove non callable array items from field categories (joomla#20093) * Update default.php * Update fields.php * Update default.php * Update fields.php * Update fields.php * Update fields.php * [Site Modules] Manifest file filters, part 1 (joomla#20845) * [Modules] Manifest file filters * Chosen placeholders * [cs] leading spaces (joomla#20858) * [cs]leading spaces While checking joomla#20844 I saw that these strings all have a leading space which should not be there * oops * [Site Modules] Manifest file filters, part 2 (joomla#20856) * [Site Modules] Manifest file filters, part 2 * Update default.php * Update default.php * Update default.php * [Site Modules] Manifest file filters, part 3 (joomla#20857) * [Admin Modules] Manifest file filters (joomla#20868) * [Admin Modules] Manifest file filters * Default values * Fix OpenSearch implementation * [mod_articles_category] Showon * Add showon to levels * Update string * Remove CSS * Add security issue template * Formatting * Let the table check the data before storing. * [Templates] Escape sitename (joomla#21008) * Checking return value and catching whole stuff * Updating Bosnian installation language files * Updated 3.9-dev and added 3.10-dev (joomla#21097) * Exceptions in Joomla\CMS\Table\Usergroup refer to categories (joomla#21098) * Exceptions in Joomla\CMS\Table\Usergroup refer to categories Pull Request for Issue joomla#21092 . ### Summary of Changes remove todo that is clearly a copy paste error from somewhere else change exception message to usergroups from catergory NOTE the first exception` if ($this->id == 0)` I am not sure if that should even be present - doesn't look like it to me - please advise * Update Usergroup.php * Deprecate sef_advanced strings (joomla#21116) * [com_content] Featured articles tag filtering (joomla#21138) * Update ModuleHelper.php (joomla#20273) * The JPATH_ constants are not magic strings (joomla#21151) * Remove if/else in user debug models that can never hit else conditions (joomla#21188) * [com_content] Featured articles access filter (joomla#21168) * Media manager doesn't obey relative pathes for video files (joomla#21156) * correct video url fixes joomla#21145 (comment) * fix * Speed up regex in emailcloak plugin (joomla#20956) * Speed up regex in emailcloak plugin * Fix comment * Fix subform.repeatable-table multi field styling (joomla#20209) * Fix subform.repeatable-table multi field styling * Fix staging less/css * revert previous * Update FormField.php (joomla#20168) * Update HTMLHelper.php (joomla#19770) * Fix a problem with older Joomla versions language packs registration and update sites rebuild (joomla#16355) * Fix a problem with older language packs Language packs installed under older Joomla versions are registered in the database under their package name, not under their name and since rebuild function fails on them. e.g. package with <name>Afrikaans (South Africa)</name> <packagename>af-ZA</packagename> has name column in #_extensions table set as af-ZA and since existing query fails. * Update updatesites.php * missing single quote (joomla#21213) * Add a note field from the #__fields_groups table to the field list query * [3.x FIX] Getting the correct associations in sidebyside view for contact and newsfeeds (joomla#21180) * [3.x FIX] Getting the correct associations in sidebyside view for contact and newsfeeds * undefined property * correction in js * [com_menus] Remove useglobal (joomla#21095) * [fix] fixed PluginHelper import of xtd-editors plugins (joomla#17907) * [fix] fixed PluginHelper import of xtd-editors plugins * [imp] small adjustment and comment * Fix errors exposed by strict (joomla#12544) * Don't need a closure, jQuery ready function is enough. Use strict. * Fix errors exposed by strict. Undeclared variables. wrong regex backreference * Fix some undeclared/wrongly declared variables * Avoid some redundant calls of $(this) * Remove some redundant (also wrong) code. * [3.8] Make the text clearer (joomla#20940) * make the text clealer Make the PLG_TWOFACTORAUTH_TOTP_STEP3_TEXT text clealer. * thans @brianteeman * Adding lithuan language files. * Updating lithuanian language strings for TinyMCE * Appended input fields (joomla#21257) PR for joomla#12448 ## Steps to reproduce the issue Effects all appended input fields. Eg. Navigate to a single article menu item (Menus -> MainMenu -> Home) and resize the screen below 767px. Input fields extend outside the viewport. * CSS for flags (joomla#21254) Fix for joomla#13678 reported by @gwsdesk * Add "Reviewed by Hound" badge (joomla#21263) * Adjust doc block to ensure file is included in patch packages due to accidental deletion with last release's post-update script * Prepare 3.8.11 release candidate * Reset to dev * Prepare 3.8.11 release * Bump to 3.8.12-dev * Added security scan tool to CI setup (joomla#20796) * Added security scan tool to CI setup * Updated ordering * fixed command name
This proposal is a result of discussions between myself and @brianteeman during our time at DrupalCon Nashville while evaluating the current state of the project and ways in which workflows and processes could improve as a whole. As a proof of concept, the names in this list should NOT be considered a finalized product but it is based heavily on current contributor or team status and the individuals who are presently involved with or engaged in activity commonly affecting various code elements.
Introducing Code Owners
Currently every pull request must pass automated tests and two human tests. This is great but we can do even better. We don’t have a system to request reviews from specific people, teams or subject experts. With this GitHub feature, reviews from the “code owners” will be automatically requested when any pull request changes any of their owned files.
Why
We can’t all check every new PR to see if it affects the code that we own, maintain, or are generally “experts“ in. Some pull requests might be really obvious from the title but more often than not it really isn’t, especially as we often rely on someone being tagged about the issue for various reasons. This is not efficient or productive and we often find ourselves having to create further pull requests to address issues that we could and should have caught before.
How does this work?
If a review has been requested by a “code owner” then the “code owner” will be notified and they should review the Pull Request as many contributors already do. Just like with the automated tests the pull request will not be mergeable unless it has been reviewed by the “code owner”.
The “code owner” does not have to review and approve every aspect of the PR - only the parts that they are involved in. For example if a PR touches a library file that has an “owner” they should review their piece. Of course it would be great if they could test the entire PR but it isn’t a requirement and their “Review” is only required for the code they own (as an example, for #19990 the pull request would require a review from the “owner” of the en-GB language strings, session API, and automated testing suites).
In this initial proposal, not all elements of Joomla are assigned an owner. I have created a list of owners for a small subsection of the repo as a demonstration of how the feature works and inevitably the coordination that would be required for PRs affecting different parts of the system (i.e. a new feature for custom fields which includes language strings as it adds something to the UI would require an approval from whomever is the “owner” of the en-GB language strings and the “owner” of the PHP code in the custom fields extensions, but these would be separate approvals for their sections only and not the overall pull request). Generally this should be a list of GitHub teams, however we do not have a full list of teams at this time therefore the use of individual usernames should suffice for demonstrating the intent.
If approved in theory, as a testing phase this PR could be merged to the 4.0 branch to evaluate the workflow changes it introduces prior to merging to staging and in effect changing the workflow for all PRs.