CiviCRM Core issueshttps://lab.civicrm.org/dev/core/-/issues2023-08-08T22:21:49Zhttps://lab.civicrm.org/dev/core/-/issues/4413Disabling and re-enabling a core extension removes it from the navigation men...2023-08-08T22:21:49ZlarsssandergreenDisabling and re-enabling a core extension removes it from the navigation menu and from SKIf you disabled and re-enable a core extension, you lose the relevant navigation menu item and you lose some of the relevant entities in SK. For example, if you disable and re-enable civi_mail, you lose the Mailing menu item and the Mail...If you disabled and re-enable a core extension, you lose the relevant navigation menu item and you lose some of the relevant entities in SK. For example, if you disable and re-enable civi_mail, you lose the Mailing menu item and the Mailings and Outbound Mailings entities disappear from SearchKit (but Mailing Bounces, etc are still present). Similar with civi_member. Cache clearing or menu rebuilding doesn't help. On dmaster.https://lab.civicrm.org/dev/core/-/issues/4412Add something like API 3 Attachments to API 42023-07-06T06:35:00ZlarsssandergreenAdd something like API 3 Attachments to API 4We can't get the full URL for a file from API 4 File and there is no API 4 Attachments, so API 3 must be used — which seems like a significant gap.
Thought this was worth noting as it has come up [twice](https://civicrm.stackexchange.co...We can't get the full URL for a file from API 4 File and there is no API 4 Attachments, so API 3 must be used — which seems like a significant gap.
Thought this was worth noting as it has come up [twice](https://civicrm.stackexchange.com/questions/45209/get-uploaded-file-full-url-via-api-v4/45210) on [SE](https://civicrm.stackexchange.com/questions/45179/civi-crm-apiv4-image-retrieval) recently.https://lab.civicrm.org/dev/core/-/issues/4411Standalone language support2024-02-04T00:04:15ZRichStandalone language supportStandalone allows users to set their language, but does nothing with that information; languageNegotiationURL() does nothing.Standalone allows users to set their language, but does nothing with that information; languageNegotiationURL() does nothing.https://lab.civicrm.org/dev/core/-/issues/4410Standalone timezone support2024-02-07T10:31:42ZRichStandalone timezone supportIn standalone we have defined a timezone field on the user table, with the design that it should store data like `Europe/London`.
It seems that there's a `civicrm_timezones` table that, if populated, would provide suitable pseudoconstan...In standalone we have defined a timezone field on the user table, with the design that it should store data like `Europe/London`.
It seems that there's a `civicrm_timezones` table that, if populated, would provide suitable pseudoconstants.
For now the afform offers a free text field, which is going to be very fragile.
We need to understand what the process is for populating/updating the `civicrm_timezones` table, and then point to the `name` values in there for our `User.timezone` values.https://lab.civicrm.org/dev/core/-/issues/4409Translation for site default language not loaded2023-08-08T22:21:51ZeileenTranslation for site default language not loadedWhen configuring message templates the translation system allows for draft and approved statuses. However, these apply to the the translations, not the message templates.
In order to use the approval flow it is necessary to create a tra...When configuring message templates the translation system allows for draft and approved statuses. However, these apply to the the translations, not the message templates.
In order to use the approval flow it is necessary to create a translation for the site default language - at which point you would expect it to be used.
However, this line https://github.com/civicrm/civicrm-core/pull/26232/files#diff-466bc3af8c09d1d88e212c1465c6586e2d7187d27397e75f02e67436b1d4be13L181 currently causes the message template, not the tranlation to be called when the site default language is whistled up.
It's pretty clear that if you configure an English (United States) template you want it to be used but it gets more confusing for the expected behaviour for other languages - which should they fall back to. From a code / UI point of view this is not obvious but from a site usage point of view it is - ie
1) the whole reason for creating the translation for the site default language is to have the approval work flow - you don't want it to by bypassed for other languages that fall back to it and ...
2) you don't really want to have to be maintaining 2 templates for no added value.
The underlying issue is the lack of the statuses on the message templates and for any larger effort on this it would make sense to add it there & make the template obsolete.
It would perhaps also be possible to add a hook so that the message template is updated whenever the site default template with status=approved is updated. I worry a bit this could get confusing because there is an idea it could be turned back into a draft & then it would fall back on the message template again - but that would already have been updated.
It would also be possible to add more documentation / perhaps more UI notifications - although with little evidence other sites are using this and even if they have, have added translations for the default language I'm inclined to go with 'if someone translates the default language they did it so that it would be the one used' and make that work5.64.0https://lab.civicrm.org/dev/core/-/issues/4408Case Detail Report Template Missing City Field2023-07-05T03:43:28ZLKuttnerCase Detail Report Template Missing City FieldThe Case Detail report template is missing {contact.city} while all the other address fields are available. I do not know how long this has been like this, since we just began using this report. One thought I had was that this might be ...The Case Detail report template is missing {contact.city} while all the other address fields are available. I do not know how long this has been like this, since we just began using this report. One thought I had was that this might be caused by our using the Word replacement feature for City > Town, but disabling it did not help. This is with 59.5.4.
![Missing-City-Field](/uploads/d206a1e64547bdf40a778cd71f19a8c4/Missing-City-Field.PNG)https://lab.civicrm.org/dev/core/-/issues/4407SearchKit: Option to apply style to whole row2023-07-04T23:49:12Zaydunsaidan.saunders@squiffle.ukSearchKit: Option to apply style to whole rowThe most common use of `Style` conditionals for me is setting the `Style` to `Disabled` based on the `Enabled` field.
Currently this requires adding the same conditional to every field in the display.
Suggestion: allow a style to be ap...The most common use of `Style` conditionals for me is setting the `Style` to `Disabled` based on the `Enabled` field.
Currently this requires adding the same conditional to every field in the display.
Suggestion: allow a style to be applied to the whole row.colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/4406SearchKit: make 'inplace edit' conditional2023-07-09T03:06:31Zaydunsaidan.saunders@squiffle.ukSearchKit: make 'inplace edit' conditionalSuggestion: apply conditional rules (like those on the `Style` option) to `In-place edit`
Use case:
On a listing of Participant Status Types, we want to enable in-place edit if the type is not `Reserved`Suggestion: apply conditional rules (like those on the `Style` option) to `In-place edit`
Use case:
On a listing of Participant Status Types, we want to enable in-place edit if the type is not `Reserved`colemanwcolemanwhttps://lab.civicrm.org/dev/core/-/issues/4405SearchKit: prevent Smarty parsing content in 'rewrite text'2023-07-04T21:43:41Zaydunsaidan.saunders@squiffle.ukSearchKit: prevent Smarty parsing content in 'rewrite text'Overview
----------------------------------------
The 'Rewrite Text' option in SearchKit tables allows use of Smarty, but Smarty attempts to parse the content of the tokens sometimes resulting in Smarty errors and no results being shown....Overview
----------------------------------------
The 'Rewrite Text' option in SearchKit tables allows use of Smarty, but Smarty attempts to parse the content of the tokens sometimes resulting in Smarty errors and no results being shown.
Reproduction steps
----------------------------------------
1. Create a SearchKit for Job Logs
1. Add `Description` and `Extended data`
1. Add a table with default fields
Check you have data!
1. Enable 'Rewrite Text' on `Description` or `Extended Data` - leave the tokens as provided.
Current behaviour
----------------------------------------
Depending on your job log content there may be no results showing.
My data included a description of `Finished execution of Civirules cron with result: Success (a:0:{}) `
The webserver log shows:
```
[Tue Jul 04 17:14:10.938281 2023] [php7:error] [pid 1081743] [client 127.0.0.1:42138] PHP Fatal error: Smarty error: [in string:Finished execution of Civirules cron with result: Success (a:0:{}) line 1]: syntax error: unrecognized tag: (Smarty_Compiler.class.php, line 440) in /opt/buildkit/build/adminui/web/wp-content/plugins/civicrm/civicrm/packages/Smarty/Smarty.class.php on line 1100, referer: http://adminui.localhost/wp-admin/admin.php?page=CiviCRM&q=civicrm%2Fadmin%2Fsearch
```
Expected behaviour
----------------------------------------
The tokens should be displayed without Smarty attempting to parse the content.
And relatedly, if using 'Rewrite Text' to combine multiple fields, you may want to enable HTML (eg to add bold or line breaks) without having the token content itself rendered as HTML.
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __CiviCRM:__ _Master_ <!-- If this problem relates to an upgrade, then specify both old and new versions -->
Comments
----------------------------------------https://lab.civicrm.org/dev/core/-/issues/4404Possibility to reuse the list of languages available for "Preferred language"2023-07-06T06:36:35ZquimgilPossibility to reuse the list of languages available for "Preferred language"Overview
----------------------------------------
Out of the box, CiviCRM comes with a full list of languages used for the field "Preferred language". Right now, there is no way to reuse this list in custom fields. Admins must create the...Overview
----------------------------------------
Out of the box, CiviCRM comes with a full list of languages used for the field "Preferred language". Right now, there is no way to reuse this list in custom fields. Admins must create their own list of languages manually or use different unsupported approaches to reuse the one CiviCRM already has.
Example use-case
----------------------------------------
An international organization working with volunteers wants to know in which languages they have basic, advanced, and native/professional fluency, in separate questions.
Current behaviour
----------------------------------------
The list of languages available in CiviCRM's database cannot be reused for custom fields.
Proposed behaviour
----------------------------------------
Make the "Preferred language" list of languages available to custom fields, just like you can create any list that is then available to other custom fields.
Comments
----------------------------------------
See examples of ad hoc solutions admins are recurring to on https://civicrm.stackexchange.com/questions/6604/how-to-reuse-preferred-language-selecthttps://lab.civicrm.org/dev/core/-/issues/4403SK / API 4 Explorer: event_queue_id, job id, bounce id, etc autocompletes don...2023-07-05T04:30:05ZlarsssandergreenSK / API 4 Explorer: event_queue_id, job id, bounce id, etc autocompletes don't workEdited as this issue is more general than I thought. Fairly minor issue, but:
In SK or API 4 Explorer, for mailing event id fields (event queue id, job id, bounce id, etc), the autocomplete fields don't work. No matter what you input, i...Edited as this issue is more general than I thought. Fairly minor issue, but:
In SK or API 4 Explorer, for mailing event id fields (event queue id, job id, bounce id, etc), the autocomplete fields don't work. No matter what you input, it shows `Loading failed` and you can't make a selection.
To replicate: Choose MailingEventBounce or similar, Where event_queue_id and =.https://lab.civicrm.org/dev/core/-/issues/4402Change unsupervised Household dedupe rule to email only2023-07-06T23:20:28ZlarsssandergreenChange unsupervised Household dedupe rule to email onlyAs @DaveD [pointed out](https://github.com/civicrm/civicrm-core/pull/26673#issuecomment-1613302861), the default unsupervised Household dedupe rule that matches on name or email doesn't make a lot of sense. Presumably, you could easily h...As @DaveD [pointed out](https://github.com/civicrm/civicrm-core/pull/26673#issuecomment-1613302861), the default unsupervised Household dedupe rule that matches on name or email doesn't make a lot of sense. Presumably, you could easily have multiple households with the name "Jones family" or similar in whatever format you choose for household names. You wouldn't want these to be merged automatically.
I think the easiest and clearest solution is only to merge households with the same email, but then that won't help those without emails. We could do something like threshold 20, email 20, name 10, street address 10, phone 10, but I'm not sure we gain much from that. We can keep name or email as the supervised rule.https://lab.civicrm.org/dev/core/-/issues/4401SearchKit - Report replacement - as a standard user without edit searchkit pe...2023-07-06T06:37:04ZsamuelsovSearchKit - Report replacement - as a standard user without edit searchkit permission, add a way to show/hide columns in table displayThere is already an [extension](https://lab.civicrm.org/extensions/search_kit_reports) that recreate the queries of core reports into SearchKit so admin/super user can customize and use them instead of report.
However, as a standard use...There is already an [extension](https://lab.civicrm.org/extensions/search_kit_reports) that recreate the queries of core reports into SearchKit so admin/super user can customize and use them instead of report.
However, as a standard user, edit a Searchkit is too complicated and reports is still the better option if we need to provide a lot of flexibility to users.
Currently, in Reports, standard user have access to customize :
- Columns - no way to do this in SK without editing the SK - hence the proposal
- Sorting - already there by clicking on the columns of the SK table
- Filters - already there by configuring them with FormBuilder
- Title and Format - don't think it is required
- Email delivery - missing, already documented in https://lab.civicrm.org/dev/core/-/issues/3478
So I think the main undocumented missing feature if we want to replace the reports is to have a way for a standard user to choose which columns to show/hide in a table display. It needs to apply to the screen and to the Download action.
As an example, I like the way new reports in Quickbooks works with the ability to switch each column on/off and as a bonus allow to change columns order :
![Rapport](/uploads/550ef9e7d7ffd1f19849b4034faa7765/Rapport.png)
As a first step, I don't think we need to save the user preferences but we will probably want to be able to do that / reset to default eventually.https://lab.civicrm.org/dev/core/-/issues/4400Export of contacts when filtering on custom field exports all contacts in dat...2023-07-06T06:37:41ZtjhellmannExport of contacts when filtering on custom field exports all contacts in databaseOverview
----------------------------------------
When I filter contacts from Advanced Search and select a custom field to filter on, in the next screen, the correct list and number of records comes up. From there if I select All [number...Overview
----------------------------------------
When I filter contacts from Advanced Search and select a custom field to filter on, in the next screen, the correct list and number of records comes up. From there if I select All [number of records] records and select Export contacts, the next screen also shows the correct number of contacts from the previous screen. But when I click 'continue' to export the records, the export contains all the records in the database. This does not happen when the list is filtered for non custom fields.
Reproduction steps
----------------------------------------
1. Visit Advanced Search
1. Select a custom field value as search criteria and click search
1. See expected search results. Now click All Records and Export Contacts.
2. On the next screen see that the expected number of contacts say they will be in the export. Click continue and all the contacts in the database are in the exported file.
Environment information
----------------------------------------
* __CiviCRM:__ 5.62.1
* __PHP:__ 8.0.29
* __CMS:__ Drupal 9.5.9
* __Database:__ MySQL 5.7.39https://lab.civicrm.org/dev/core/-/issues/4399Unable to merge incomplete memberships due to missing end_date2023-07-06T06:38:24Zfreeform.stephUnable to merge incomplete memberships due to missing end_dateWhen a contribution fails when purchasing a membership, a membership remains (as either pending or cancelled) that does not have an end date. When merging contacts any memberships are expected to have an end date.
`"UPDATE civicrm_membe...When a contribution fails when purchasing a membership, a membership remains (as either pending or cancelled) that does not have an end date. When merging contacts any memberships are expected to have an end date.
`"UPDATE civicrm_membership SET end_date = '' WHERE id=ID [nativecode=1292 ** Incorrect date value: '' for column `civicrm`.`civicrm_membership`.`end_date` at row 1]"`https://lab.civicrm.org/dev/core/-/issues/4398Mailing never starts2023-08-03T12:41:03ZphilmckMailing never startsOverview
----------------------------------------
_Please describe your problem or bug in detail._
Group emails from one of my CiviCRM installations are not being delivered (ever), which has caused some embarrassment. Messages can be com...Overview
----------------------------------------
_Please describe your problem or bug in detail._
Group emails from one of my CiviCRM installations are not being delivered (ever), which has caused some embarrassment. Messages can be composed as usual, but are never scheduled and there's no "runner" display. Pausing and restarting the mailing results in the status changing from "Scheduled" to "Running" and clicking "Report" shows the expected number of intended recipients but the "Successful Deliveries" count is always zero. In case it's relevant, I did notice that the option to send "immediately" is not selected by default (which I think it always is on sites that work), but it can be selected manually.
Obviously, I have enabled the "Send Scheduled Mailings" job and tried triggering that both manually and from a cron job. The log shows success but with a count of zero.
I have also tried obvious things like disabling all extensions, resetting caches and paths, comparing all settings with other installations that do work, searching the forums, bug reports and so on. I've checked that outgoing mail is configured correctly and I can send test emails. There's nothing in the error logs. Nothing makes any difference, it seems to be a bug.
The problem is reproducible in the sense that it's not intermittent, but I haven't been able to reproduce it on a clean installation.
I'd be prepared to move everything to a new installation to work around this but it's a heavily used instance with lots of contacts, invoices and so on and I know of no way to export all those and reimport them later to a working instance. Everything else seems to be working as usual.
Reproduction steps
----------------------------------------
1. Create a group containing some test contacts.
2. Go to **Mailing > New Mailing** and compose a test message, with the group from the previous step selected as Recipients.
3. Click **Send test** and check that a test message is correctly delivered.
4. Click **Next** then select **Immediately** or a date and time 5 minutes in the future.
5. Click **Submit Mailing**.
6. Wait for cron to run or go to **System Settings > Scheduled Jobs** and trigger **Send Scheduled Mailings**. Check that the result is success.
7. Check that the message is now in **Mailing > Scheduled and Sent Mailings**. Click **Report**. Observe that **Intended recipients** is not zero but **Successful deliveries** is always zero.
Current behaviour
----------------------------------------
_What happens currently. Please provide error messages, screenshots or gifs ([LICEcap](http://www.cockos.com/licecap/), [SilentCast](https://github.com/colinkeenan/silentcast)) where appropriate._
Nothing happens. No messages delivered, nothing in error logs.
Expected behaviour
----------------------------------------
_What should happen._
Messages are sent once the scheduled job is triggered, perhaps with a batch limit. Eventually the whole job completes and the status changes to "Completed".
Environment information
----------------------------------------
<!-- Some of the items below may not be relevant for every bug - if in doubt please include more information than you think is neccessary. -->
* __Browser:__ _Chrome 114.0.5735.135_
* __CiviCRM:__ _Master/5.62.1_
* __PHP:__ _8.1_
* __CMS:__ _WordPress 6.2.2 running on Ubuntu 22.04_
* __Database:__ _MariaDB 10.6.12_
* __Web Server:__ _OpenLiteSpeed 1.7.17_https://lab.civicrm.org/dev/core/-/issues/4397What should the Name and Address reserved general Individual dedupe rule do?2023-06-30T00:14:21ZlarsssandergreenWhat should the Name and Address reserved general Individual dedupe rule do?We have a reserved dedupe rule on new installs for Individuals called Name and Address.
What it actually does is matches contacts who have the same first name, last name and street address. What it claims to do is the following:
![image]...We have a reserved dedupe rule on new installs for Individuals called Name and Address.
What it actually does is matches contacts who have the same first name, last name and street address. What it claims to do is the following:
![image](/uploads/d427acb2b1c3ce07c994b68a2371ac62/image.png)
[This rule](https://github.com/civicrm/civicrm-core/blob/master/sql/civicrm_data/civicrm_dedupe_rule/IndividualGeneral.sqldata.php) also includes suffix_id and middle_name with weights of 1, which cannot influence the matches (threshold 15, all other items have weight 5), so these don't do anything.
There is a [hard-coded query](https://github.com/civicrm/civicrm-core/blob/master/CRM/Dedupe/BAO/QueryBuilder/IndividualGeneral.php) for this rule that should match up with the above (right now we are querying middle_name, suffix and birthdate for no reason, which is kind of ironic since this query claims to be optimized).
None of this has changed in at least ten years.
Personally, I don't think matching on first, last and street address is useful (as street addresses are often written slightly differently so are not that likely to match). Maybe we should just eliminate this reserved dedupe rule, since I can't see that it is used for anything. If not, maybe we should make it more useful by making it just first and last name. Or maybe there is some reason this is useful as is and we should simply make this all consistent so it just matches on first, last and address and nothing more.https://lab.civicrm.org/dev/core/-/issues/4396AdminUI: Allow searching by "LastName, FirstName" in Find Contacts2023-06-30T00:31:42ZlarsssandergreenAdminUI: Allow searching by "LastName, FirstName" in Find ContactsIt's great that we can now search by display name (FirstName LastName) in Find Contacts in AdminUI, however, it would be great if we could search by "LastName, FirstName" as well, since this is the standard that's used in CiviCRM (Find C...It's great that we can now search by display name (FirstName LastName) in Find Contacts in AdminUI, however, it would be great if we could search by "LastName, FirstName" as well, since this is the standard that's used in CiviCRM (Find Contacts, Quick Search, Advanced Search), so it's what users are used to. I know I've trained myself (and have trained our staff) to always use "LastName, FirstName".https://lab.civicrm.org/dev/core/-/issues/4395Token support to allow us to migrate sort_name, display_name, address formats...2023-06-28T07:10:08ZeileenToken support to allow us to migrate sort_name, display_name, address formats to tokensWe have a goal to get sort_name, display_name and address formats to resolve using the standard token system, at the same time as the greetings are resolved.
Unfortunately there are some things they support at the moment that our tokens...We have a goal to get sort_name, display_name and address formats to resolve using the standard token system, at the same time as the greetings are resolved.
Unfortunately there are some things they support at the moment that our tokens don't. Our tokens DO support the default filter
`{contact.first_name|default:"donor"}`
and they support the magic space - ie
`{contact.first_name}{ }{contact.last_name}`
which resolves a space in the above, but not if there is no last name.
However, in sort name there is a variant on the magic space we don't currently support in tokens - - ie
`{contact.last_name}{, }{contact.first_name}`
The regex that supports that actually removes the whole `{}` contents if the following tag is empty or renders the contents otherwise.
This is pretty hard to make compatible with smarty :-(, which is a requirement to standardise. So ideally we would
1) make the magic syntax support know usages (within reason) which so far are the magic space, the magic comma and this variant
`{contact.first_name}{ ~ }{contact.nick_name}{ ~ }{contact.last_name}`
2) add a system-check to highlight notify using variations of the magic syntax other than the 3 on our radar that they may not work in future upgrades if we don't add support & direct them to this ticket to comment & explain the use case
3) depending on the variations that come out of 2 add 'micro-conditional support'
Note micro-conditionals was an idea @totten came up with when we were spit-balling this - I've pasted his thoughts below
---------------------------------------------------------------------------------------------------------------------
micro-conditionals: special tokens that conditionally display a handful of symbols
```
---------
{contact.first_name} {contact.last_name} { ~ } {contact.nick_name}
{contact.last_name}{ }{contact.first_name}
{contact.last_name}{, }{contact.first_name}
{contact.first_name}{ (}{contact.nick_name}{) }{contact.last_name}
Dear {contact.first_name}{?friend},
----------
{contact.first_name contact.last_name " ~ " contact.nick_name}
{contact.last_name " " contact.first_name}
{contact.last_name ", " contact.first_name}
{contact.first_name " (" contact.nick_name ") " contact.last_name}
Dear {contact.first_name ?friend},
----------
{{{contact.first_name contact.last_name ~ contact.nick_name}}}
{{{contact.last_name contact.first_name}}}
{{{contact.last_name, contact.first_name}}}
{{{contact.first_name (contact.nick_name) contact.last_name}}}
Dear {{{contact.first_name??"friend"}}},
-------------
```
Also note - first draft of appropriate test https://github.com/civicrm/civicrm-core/pull/26637/files#diff-a5d237ba4e392d0e8ad764a535315f0b1101cc5ca61c39b4e572de42f5c6b4bchttps://lab.civicrm.org/dev/core/-/issues/4394CiviEvent: Could not find valid value for id2023-06-30T13:49:11ZguitarmanCiviEvent: Could not find valid value for idOverview
----------------------------------------
Event Participant registration stopped working.
After completing no matter which registration form and pressing the "register"-button, an error shows up.
Reproduction steps
------------...Overview
----------------------------------------
Event Participant registration stopped working.
After completing no matter which registration form and pressing the "register"-button, an error shows up.
Reproduction steps
----------------------------------------
1. Chose an event, click on "register"
2. Fill out the registration form and click on the "register"-button
3. Results in an error 500 / Could not find valid value for id.
Current behaviour
----------------------------------------
Registration doesn't work and results in the following error:
```
CRM_Core_Exception: Could not find valid value for id. in [DOMAIN]/administrator/components/com_civicrm/civicrm/CRM/Event/StateMachine/Registration.php on line 27
```
Expected behaviour
----------------------------------------
Registration should complete and the respective confirmation should be displaying.
Environment information
----------------------------------------
Joomla 3.10.11, PHP 7.4.33, CiviCRM 5.62.1
![exception-trace](/uploads/2cd7d5b63823aa2c70111a6bfa8ecaf9/exception-trace.jpg)
This is probably related to:
https://civicrm.stackexchange.com/questions/44719/could-not-find-valid-value-for-id
https://civicrm.stackexchange.com/questions/41578/could-not-find-valid-value-for-id-after-event-registration-on-wordpress-5-9-1
and most probably to https://lab.civicrm.org/dev/wordpress/-/issues/140