[Translation] L'Ultima Cena(Korean)

What kind of translation do you want to add (mark with an X, e.g. [X] Descent)?

[X] Mansions of Madness
[ ] Descent

Scenario name or url
L'Ultima Cena

Translation File
Localization.Korean.txt

Hi @blueadamantine I believe this is yours

Hi @blueadamantine I believe this is yours

Yes, it is. Thanks, @scrubbless.

@cheeseguyhcl Thank you so much for translating my scenario! I'm pleasingly surprised. :smiley: I've updated the scenario with your translation.

@cheeseguyhcl Thank you so much for translating my scenario! I'm pleasingly surprised. 😃 I've updated the scenario with your translation.

Hi! not yet been updated😭 check Please

Sorry, I forgot to update the quest file, but I remedied it. I've having some issues because Valkyrie is being updated and it's messing some things up. Vidimus and me are working on that. Thanks for your patience.

@cheeseguyhcl , it's up. Please, check it to be sure it's working fine


Enhance Red Hat spelling rule (YAML) to fix false positives on valid words

This PR aims to remove the following false positive churn that we've seen recently on the Red Hat build of Quarkus doc project:

These are valid and commonly used US English words that are approved for use according to the latest Red Hat and IBM Style guidelines.

@rohennes - FYI...  I changed invokable to invocable (in Merriam Webster) in the spelling rule and added a new Term Warning to detect invokable and suggest invocable instead.  I removed 'unsecure' as this might need more style discussion and investigation. Will handle in a later PR. Thanks :slightly_smiling_face:


(chore) bump dependencies

Bump dependencies, more specifically to include projectdiscovery/gologger#50, but I also bumped whatever else was possible too.

@ehsandeep happy for feedback given how the CI is going. Should I drop to go 1.20, or?

Sure just updated to that. The most minimal bump I could do is the last forced push.

Thanks for merging. Got an idea when the next release will happen perhaps? I'm trying to resolve some dependabot alerts that depend on this library.
Thanks ❤

@ehsandeep just bumping this again regarding the tagging question. thanks!


Fix helmfile --selector x=y template with needs

I had mistakenly inverted the necessary flag to turn off the legacy processing on selectors that should be used only for helmfile commands that does not support DAGs/needs.
Fixes #1552

Hey @mumoshu, I'd love to test this, but not sure how to install from an unmerged PR 😳

@daaain Hey! I've released v0.132.2 for this. Would you mind giving it a shot?

Works perfectly (tried 1.133.0 now that it's the latest), thanks @mumoshu 🙇


Tests fail with ENOENT on missing *expected.txt

Instead, tests should continue, rendering the missing expected.txt as the empty string.

will be fixed with #63

this has already been fixed. somehow my branch was off.


Deprecation warnings in 0.12

While the template seems to still work, it triggers a ton of deprecation warnings in 0.12 due to its use of locate().

While the template seems to still work, it triggers a ton of deprecation warnings in 0.12 due to its use of locate().

Thanks for the information. They've documented that they're going to remove the locate() functionality, but they don't say how to replace it.

While the template seems to still work, it triggers a ton of deprecation warnings in 0.12 due to its use of locate().

Thanks for the information. They've documented that they're going to remove the locate() functionality, but they don't say how to replace it.

The replacement is context https://typst.app/docs/reference/context/


Add CI/CD pipeline for Frontend

In this task, we will add a CI/CD pipeline for react(frontend) application.

We have implemented the CI/CD pipeline for the frontend using Github pages.
https://team-glare.github.io/application-tracking-system/


Link to docs on website is broken

on this page here: https://photonjs.prisma.io
links to : https://github.com/prisma/prisma2/blob/master/docs/photon/api
this works: https://github.com/prisma/prisma2/tree/master/docs/photon/api

Thanks for catching this @darknoon, I just fixed the broken links on the website 🙌


Create josema.txt

@julianmontoya First stage of verification passed, official domain is josema.edu.co as far as I verified. This is just an informational note. Pull request is still in the review. I appreciate your patience while waiting for the final decision.


Organization manager cannot add new software

In GitLab by @jasonpagetas on Jul 10, 2024, 06:11
When trying to create  new software a manager cannot add software "403 Forbidden"
permissions include add software

In GitLab by @jasonpagetas on Jul 10, 2024, 06:11
marked this issue as related to #74

added 2m of time spent

In GitLab by @jasonpagetas on Jul 10, 2024, 06:20
marked this issue as related to #109

this is a feature not a bug. an organization manager must be assigned the permission like any other user.

In GitLab by @jasonpagetas on Jul 10, 2024, 06:20
user is not currently part of a team. This issue may be resolved when this is fixed


[api] permission class for organization membership and related methods

Here's some things we'll surely need. Related to #104.
DRF Permission Class to check organization membership
A DRF permission class that does the same type of check we did in the private storage of openwisp-firmware-upgrader: https://github.com/openwisp/openwisp-firmware-upgrader/blob/6740240b9b7121fc59e8b9538ccda6e306767c5a/openwisp_firmware_upgrader/private_storage/views.py#L17-L18.
But it will have to use the methods defined below.
Method to get organizations the user is member of + caching
A method in the User model which will:

produce a data structure representing the organizations the user is member of, eg:

{
    '205e999b-1394-48c0-a966-f517fa5c606a': {
        'name': 'default',
        'is_admin': True
    },
    'bb9fd683-085f-4824-b24c-4093cdb79734': {
        'name': 'staging',
        'is_admin': False
    }
}

cache the data structure value (no need to serialize it because the cache backend will do this on its own, we just have to ensure it's a dict and not an object so that it will work also when using JSON serialization), with a default expiry of something like 2 days
return the value from the cache if present, otherwise generate it

Additional steps:

Implement cache invalidation: whenever an OrganizationUser object is saved or deleted, the cache for that user is deleted. We shall use post_save and post_delete signals which are more reliable than save and delete method on the model (because model methods can be skipped when doing certain django ORM operations)

Methods to check membership

A method on the User model, which can easily check if the user can manage part of the objects in an organization, eg: is_manager(organization), the check shall use the cached data structure defined above, eg:

org_pk = str(organization.pk)
return (
    org_pk in self.organizations_data and
    self.organizations_data[org_pk]['is_admin'] is True
)

:point_up_2: must ensure is_admin is True.

A method on the User model, which can easily check if the user is member of an organization, eg: is_member(organization), eg:

org_pk = str(organization.pk)
return org_pk in self.organizations_data

:point_up_2: will check if the membership regardless of the value in is_admin.

raise a DeprecationWarning exception in this older (and uglier) method, which will force us to update the other modules: https://github.com/openwisp/openwisp-users/blob/d95cb7a1e30ef69b948216c54931ddf7a4a215fc/openwisp_users/models.py#L57-L67

Document these methods in the README

Ensure there's at least a test for each method

Once this is ready, create an issue in openwisp-firmware-upgrader to use this new method: https://github.com/openwisp/openwisp-firmware-upgrader/blob/6740240b9b7121fc59e8b9538ccda6e306767c5a/openwisp_firmware_upgrader/private_storage/views.py#L17-L18

This functionality has to be released in a new point release, 0.3.0, in order to not break modules using openwisp-users ~= 0.2 (the DeprecationWarning exception will probably break the other modules, but that's on purpose so we'll be forced to upgrade that).

@nemesisdesign PR available but I don't see any deprecation message in the logs of the travis build


Do all development in a new "development" branch and leave "master" as a (basically) release-quality version

I'll start this after the next tagged version (I'm currently working on getting all the examples working again)

I think we should replace syntax with poetic versions in the readme. Nobody cares what the operators are called, but if it looks like it does on the board, that's #winning.

Does the build test get checked for non-master branches? I can't remember.
Should the new development branch be the default? (I think so, but it's complicated by the fact that we don't have a website, so the initial readme on the default branch is the first thing ppl see)
Is the plan to also have off-shoot branches from development, as in Chebfun, or if they're incremental changes they can be pushed to development directly?

I think the plan is that master should always pass all tests, where development is less strict.
Right now I occasionally have to check things in that break the tests to finish at work.
So well use development as the primary source, and occasionally merge to master when its stable. Master is the branch we want others to use, and it's read me is the real read me.
Sent from my iPad

On 21 May 2015, at 6:43 pm, Richard Mikael Slevinsky<EMAIL_ADDRESS>wrote:
Does the build test get checked for non-master branches? I can't remember.
Should the new development branch be the default? (I think so, but it's complicated by the fact that we don't have a website, so the initial readme on the default branch is the first thing ppl see)
Is the plan to also have off-shoot branches from development, as in Chebfun, or if they're incremental changes they can be pushed to development directly?
—
Reply to this email directly or view it on GitHub.


Remove deprecated warning in PHP 8.4.1

When using PHP 8.4.1, the next warnings are shown:
PHP Deprecated:  Tpetry\PostgresqlEnhanced\Schema\Builder::createBlueprint(): Implicitly marking parameter $callback as nullable is deprecated, the explicit nullable type must be used instead in /var/www/html/vendor/tpetry/laravel-postgresql-enhanced/src/Schema/Builder.php on line 34
PHP Deprecated:  Tpetry\PostgresqlEnhanced\Schema\BuilderDomain::createDomain(): Implicitly marking parameter $check as nullable is deprecated, the explicit nullable type must be used instead in /var/www/html/vendor/tpetry/laravel-postgresql-enhanced/src/Schema/BuilderDomain.php on line 34

I update my test matrix today and fix the bug. Thanks for reporting. I hadn't time to upgrade to PHP 8.4 for my projects yet.

The fix is now live with release 2.0.2.


Added overloads to saveAll and deleteAll APIs with both Publisher and Iterable

Added overloads to saveAll() and deleteAll() APIs with Publisher and Iterable

This is how spring framework has defined these APIs in ReactiveCrudRepository ->
	<S extends T> Flux<S> saveAll(Iterable<S> entities);
	<S extends T> Flux<S> saveAll(Publisher<S> entityStream);

	Mono<Void> deleteAll(Iterable<? extends T> entities);
	Mono<Void> deleteAll(Publisher<? extends T> entityStream);

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-spring-data-cosmos

/azp run java - spring - tests


SCRIPT ERROR: _enter_tree: Invalid call. Nonexistent function 'speak' in base 'Reference (TTSDriver.gdns)'.

Thanks for doing this work! I'm trying to integrate this plugin into my godot-accessibility work. To do this, I added the following to addons/accessibility/accessibility.gd:
const TTSDriver = preload("res://TTSDriver.gdns")
var tts
...
func _enter_tree():
    tts = TTSDriver.new()
    print(tts)
    tts.speak("Hello world", true)

The goal here is to replace bunches of print() calls with this TTS module, but first I'd like to just get "hello world" working. Unfortunately, I get:
SCRIPT ERROR: _enter_tree: Invalid call. Nonexistent function 'speak' in base 'Reference (TTSDriver.gdns)'.
   At: res://addons/accessibility/accessibility.gd:41.

when running godot -e. I basically unzipped your Linux release into the root of the checked-out godot-accessibility project, then ran the editor.
Any idea what may be going on here? ldd on the 64-bit .so file doesn't show any missing libs, so everything on my system should be fine. Maybe I'm missing a project integration step?

Any idea what may be going on here? ldd on the 64-bit .so file doesn't show any missing libs, so everything on my system should be fine. Maybe I'm missing a project integration step?

It's not linux specific. I got same error on macOS as well.
Looks like to use gdnative module in the editor plugin, it should be registered as tool class in addition to normal class, which I missed.
Issue should be fixed be 726a1d8a3cb8aa45af5939c2622fee0982cda2b6.
Currently I have tested it on macOS only. I'll rebuild, test it and update release section files tomorrow.


Druid InsectSwarm also fixes a bug with moonfire min/max damage

Hey @ElliotWood if you're around would you mind trying to wrap this one up? I'd like to try to get this merged in for the druid sim

Got too busy to finish. Apologies, might be able to pick it up in a couple of weeks


Remove sgid.political.districtcombinationareas2012 from SGID

Summary

Internal Dataset Name: sgid.political.districtcombinationareas2012
External Dataset Name: district_combination_areas_2012 in the open sgid
ArcGIS Online Url:

There is a newer version and the data that created this combination were shelved.
Migration Guide
Update to the newest data. https://gis.utah.gov/data/political/political-districts/#CombinedDistricts

This dataset has been replaced by the 2022 combined areas which is named district_combination_areas_2022 in the Open SGID and utah-district-combination-areas-2022 in the SGID Open Data.
The replaced data is still accessible via our shelved policy in AGOL (a link to the shelved item).
Action items

Assign a person who should complete the task by replacing name with their github @name.
Check [x] the box when the task is completed and add the date of completion.
~Strike~ out all items that do not apply.

Soft Delete
The purpose of the soft delete is to ensure that all of our users and applications have gracefully migrated off of the dataset. Soft deletes will remain in effect for 14 days. During this time, we will have the ability to restore the dataset to its original SGID offering(s). After these 14 days, the item is then ready for a hard delete.
Note: If this dataset is being replaced, then wait until the new data is publicly available before completing these steps:

[ ] Append "(Mature Support)" to the end of the item title (@gregbunce, completed: 2022/00/00)
[ ] Remove all tags other than "Deprecated" (@gregbunce, completed: 2022/00/00)
[ ] Add note to ArcGIS Online description noting when layer will be deleted and any replacement layer (name, completed: 2022/00/00)
[ ] Unshare item from Open Data (@gregbunce, completed: 2022/00/00)
[ ] Update the SGID Index row as deprecated by pasting the related Porter issue URL in the Deprecated field (@gregbunce, completed: 2022/00/00)
[ ] Mark ArcGIS Online item as deprecated in preparation for future deletion (@gregbunce, completed: 2022/00/00)

[ ] Change Authoritative field to d in SGID.META.AGOLItems to automatically set the Deprecated AGOL flag. Allow the d to persist through one run of Auditor - currently, Auditor runs daily at 5:00am (@gregbunce, completed: 2022/00/00)

[ ] After one successful run of Auditor, remove the row from the SGID.META.AGOLItems table.  It is recommended to complete the soft delete process before moving on to these steps. If you decide to skip the soft delete, note that you will need to incorporate some of those steps here.

[ ] Manually remove data from the Internal SGID (@gregbunce, completed: 2022/00/00)

Deprecated database layers can be backup up on Google Drive > AGRC Share > Team Projects > SGID > [deprecated layers]

[ ] Remove ArcGIS Online item: (@gregbunce, completed: 2022/00/00)

Manually delete the AGOL item
-OR-
Unshare by changing the AGOL_ITEM_ID field in SGID.META.AGOLItems to something other than an Item ID and manaually changing the sharing settings (remove the item from all SGID groups, remove Public sharing),
-OR-
Shelve the data by copying the row from SGID.META.AGOLItems to the AGOLItems_shelved table in AGOL and changing the AGOL_ITEM_ID field in SGID.META.AGOLItems to shelved or some other note.
Deprecated AGOL items can be backup on Google Drive > AGRC Share > Team Projects > SGID > deprecated layers.

[ ] Remove Farm from AGOL connection (@gregbunce, completed: 2022/00/00)
[ ] Update relevant gis.utah.gov data pages (@gregbunce, completed: 2022/00/00)
[ ] Add this porter url to the Deprecated field of the Stewardship record (name, completed: 2022/00/00)
[ ] Update SGID.META.AGOLItems table (@gregbunce, completed: 2022/00/00)

cut and paste row to AGOLItems_shelved table if shelving (see below)
set the AGOL_ITEM_ID field to hosted by <agency> for Farm from AGOL
set the AGOL_ITEM_ID field to exclude from AGOL to not publish to ArcGIS Online

[ ] Delete Google Drive data (@gregbunce, completed: 2022/00/00)
[ ] Remove row from SGID.META.ChangeDetection (@steveoh, completed: 2022/00/00)
[ ] Remove data from forklift hashing and receiving (@steveoh, completed: 2022/00/00)
[ ] Remove row from data/hashed/changedetection.gdb/TableHashes (@steveoh, completed: 2022/00/00)

Shelve/Static
Choose one based on situation.

[ ] Upload to UtahAGRC/AGRC_Shelved folder in AGOL (New shelved item not already in AGOL) (@gregbunce, completed: 2022/00/00)
[ ] Move existing AGOL item to AGRC_Shelved AGOL folder (shelving an item already in AGOL) (@gregbunce, completed: 2022/00/00)
[ ] Upload to appropriate UtahAGRC/{SGID Category} folder in AGOL (for static datasets) (@gregbunce, completed: 2022/00/00)

Add record to table.

[ ] Add record to AGOLItems_shelved table in ArcGIS Online  with shelved or static in the CATEGORY field (@gregbunce, completed: 2022/00/00)

:robot: Automation validation

Assign yourself or someone to check the item by replacing name with their github @name.
Check [x] the box and add the date of verification 2020/01/01 when the task is verified.
~Strike~ out all items that do not apply.

[ ] Remove data from Open SGID (name on 2022/00/00)
[ ] sgid-index (@steveoh on 2022/00/00)
[ ] Auditor sets appropriate shelved/static/Deprecated information (@jacobdadams on 2022/00/00)

Are there service dependencies

[ ] Are clients querying this data with the WebAPI?
[x] Notify Don Jackson (jat motorolasolutions.com) if the data is in the Next-Generation 911 Motorola Aware Map? (@gregbunce on 2023/03/13)
[ ] Does any other application depend on this data?

Notification

[ ] Twitter (@steveoh)

Group Task Assignments

Check [x] the box when you have assigned all the tasks relevant to your group.

[ ] Data Team (@gregbunce)
[x] Dev Team (@steveoh)
[ ] Cadastre Team (@rkelson)

conductor results for tasks - 226

check
status

@steveoh has completed 0 out of 3 tasks
:no_entry:

@jacobdadams has completed 0 out of 1 tasks
:no_entry:

@eneemann has completed 0 out of 1 tasks
:no_entry:

@gregbunce has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- deprecation issue link
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- deprecation issue link
:no_entry:

note: I have this on my radar to begin looking at later in the week.

🔔🔔🔔

conductor results for tasks - 226

check
status

@steveoh has completed 0 out of 3 tasks
:no_entry:

@jacobdadams has completed 0 out of 1 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- deprecation issue link
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- deprecation issue link
:no_entry:

conductor results for tasks - 226

check
status

@steveoh has completed 0 out of 3 tasks
:no_entry:

@jacobdadams has completed 0 out of 1 tasks
:no_entry:

@gregbunce has completed 1 out of 2 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- deprecation issue link
:no_entry:

conductor results for tasks - 226

check
status

@gregbunce has completed 1 out of 19 tasks
:no_entry:

@steveoh has completed 1 out of 6 tasks
:no_entry:

@jacobdadams has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- deprecation issue link
:no_entry:

conductor results for tasks - 226

check
status

@gregbunce has completed 2 out of 19 tasks
:no_entry:

@steveoh has completed 1 out of 6 tasks
:no_entry:

@jacobdadams has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:no_entry:

open sgid
:no_entry:

open data
:no_entry:

arcgis online
:no_entry:

stewardship

- deprecation issue link
:no_entry:

conductor results for tasks - 226

check
status

@gregbunce has completed 2 out of 19 tasks
:no_entry:

@steveoh has completed 1 out of 6 tasks
:no_entry:

@jacobdadams has completed 0 out of 1 tasks
:no_entry:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:+1:

stewardship

- deprecation issue link
:+1:

conductor results for tasks - 226

check
status

@gregbunce has completed 8 out of 19 tasks
:no_entry:

DenisePeterson has completed 1 out of 1 tasks
:+1:

@steveoh has completed 3 out of 6 tasks
:no_entry:

jacobdadams has completed 1 out of 1 tasks
:+1:

@rkelson has completed 0 out of 1 tasks
:no_entry:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:no_entry:

meta table
:+1:

stewardship

- deprecation issue link
:+1:

I believe my work is done

Ok, the initial Auditor validation I checked off on was when auditor caught that it had been deprecated and updated the tags, title, and deprecated note. The group and folder as set to "shelved" if it's in the AGOLItems_shelved table with a CATEGORY of shelved, otherwise it gets them via the category from the full table name (SGID.CATEGORY.table).
Thus, when we set them to deprecated in the SGID meta table, Auditor fixes the relevant bits on the item, and when the row is created in AGOLItems_shelved it actually moves it.
I'll be the first to admit this isn't a particularly elegant solution. I'd love to fix this with the asset tracker tool.

conductor results for tasks - 226

check
status

gregbunce has completed 16 out of 16 tasks
:+1:

DenisePeterson has completed 1 out of 1 tasks
:+1:

steveoh has completed 7 out of 7 tasks
:+1:

jacobdadams has completed 1 out of 1 tasks
:+1:

rkelson has completed 1 out of 1 tasks
:+1:

conductor results for POLITICAL.districtcombinationareas2012

check
status

internal sgid
:+1:

meta table
:+1:

stewardship

- deprecation issue link
:+1:

@gregbunce it looks like this is ready to be closed?

thanks everyone.


When serving from webpack getting window.location is undefined

I've just added Galleria to my app, and now serving from webpack dev server I'm getting:
Cannot read property 'hash' of undefined.

some here. I asume we're doing something wrong with webpack. But any help is appreciated

Galleria requires access to window.location.  It took me a while to figure it out but the solution is to map this to window.
Adding the following to my webpack.config.js resolved issue:
module.exports = {
    module: {
		rules: [
                        // Galleria assumes this=window
			{
				test: /galleria.*.js$/,
				loader: "imports-loader?this=>window"
			}
		]
    }
}

I'm using a regx since the history plugin will have issues too without it.
The next problem I had was that themes would not load correctly because they assume Galleria is a global.
To fix the theme issue, I set Galleria to the window object to before loading the theme.  You need to do this from code that's part of the same webpack'ed bundle as Galleria.
window.Galleria = Galleria;  // webpack
Galleria.loadTheme('../../../resources/galleria/themes/classic-1.5.7/galleria.classic.js');


FormBuilderDropdown change location items

Environment
Package name:
Everyone Hi
I want the item select sheet to always be strictly FormBuilderDropdown
How to do it?

FormBuilderDropdown(
elevation: 1,
name: 'city_dropdown',
initialValue: 'Нур-Султан',
items: const [
DropdownMenuItem(
value: 'Алматы',
child: Text('Алматы'),
),
DropdownMenuItem(
value: 'Москва',
child: Text('Москва'),
),
DropdownMenuItem(
value: 'Питер',
child: Text('Питер'),
),
DropdownMenuItem(
value: 'Нур-Султан',
child: Text('Нур-Султан'),
),
],)
I have written like this

 I want do this

I don't know what means this
A round component, a custom icon, a line between options...
Need more details that expect behaviour and actual behaviour

If you look at the picture, you can see that the list for selecting cities is located under the FormBuilderDropdown.
How to do also?

I have written like this FormBuilderDropdown( elevation: 1, name: 'city_dropdown', initialValue: 'Нур-Султан', items: const [ DropdownMenuItem( value: 'Алматы', child: Text('Алматы'), ), DropdownMenuItem( value: 'Москва', child: Text('Москва'), ), DropdownMenuItem( value: 'Питер', child: Text('Питер'), ), DropdownMenuItem( value: 'Нур-Султан', child: Text('Нур-Султан'), ), ], )

I can see the list, but this code don't is enough for that?

No)
If i tap on FormBuilderDropdown his list went down from below him.
From this it looks like this

Do you want that dropdown options appers below of FormBuilderDropdownField?

Due to lack of response, I will close this issue.
If the bug still exists, feel free to open a new issue


Add empty() constructor

Hey there,
This pull request adds a new empty constructor. This was mentioned in #75 but never implemented.
I need this so that I can obtain &Builder and not &mut Builder which is returned when modifying the tags with tags().
I'm happy to add an additional test as well if you like but the doctest seemed sufficient to me.
What do you think about this change? Thanks.

bors r+
Retry with newer MSRV, so that parking_lot_core works.

Thank you!

@notriddle I'm curious if you are able to release a new version like 3.2.0 that includes these changes? Thanks.


Replace Wallet image on homepage

@dexturr to provide new image of wallet for https://vega.xyz/wallet#overview some time soon ... :-)

Don't need this any more


Add highscores register

Hello , can add highscores register? and put on a text , for ex:
highscores.txt

No, we aren't going to make these useless features. If you want it, please add it yourself.
@Barbosik Close?


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_b87c7c0e-0b7a-4f3c-badd-826f1fbed0d6/pull/1 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target_b87c7c0e-0b7a-4f3c-badd-826f1fbed0d6.git

Docs Build status updates of commit 5f7850f:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Archive_master_2019-09-29-06-15-25 has been deleted or has been force pushed: fatal: Couldn't find remote ref Archive_master_2019-09-29-06-15-25

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Update create-signatures-and-disclaimers.md

Added sender property details to the rule
Fixes https://github.com/MicrosoftDocs/microsoft-365-docs/issues/12954

@JohanFreelancer9 Please copy review

@twernermsft Please merge this PR. Thanks


Not applicable for D365FO

Items like WMDP, web-pages etc. are not valid for D365FO but AX 2012.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0c09b52d-b0f9-c026-2002-a2d1405fdde8
Version Independent ID: d772efac-6970-4b62-3911-d5cd3f199f6d
Content: Warehouse mobile device display settings - Finance & Operations | Dynamics 365 | #MSDyn365FO
Content Source: articles/supply-chain/warehousing/change-warehouse-mobile-device-displays.md
Service: dynamics-ax-applications
GitHub Login: @perlynne
Microsoft Alias: perlynne

@perlynne please review and update the topic if necessary.

Bug 296961 has been logged to track this issue.

@depakgupta thanks for bringing this to our attention. We've added a note to the top of relevant topics to let users know that the feature has been deprecated.  Please note that it may take a few days before the changes to the topics go live.


Add *Capture TypeScript type definitions

Since properties support on<Event>Capture props, support them in TS.

Coverage remained the same at 100.0% when pulling 0c22f1098ce0acc2b1d21957fafddb3f4676142f on andybons:capture into 18878f4d73a668fb03a1e0dbc808f1f63818c46d on developit:master.

Approved! we may want to check if this interacts poorly with the other TS PR.

Coverage remained the same at 100.0% when pulling 1786575cd162dfac542d28c77461b09a36f3fe87 on andybons:capture into 85d1a7190accba0d7ade712263f9c097ef69a740 on developit:master.

@developit do you mean this one? https://github.com/developit/preact/pull/933

Yup

This and #933 alter different parts of the file that are unrelated.

Coverage remained the same at 100.0% when pulling 6050a2e7d3e13abe2d43271e4467554265da0788 on andybons:capture into 17cc8deddd3d4e592685dfa42e832f6e8d2cb795 on developit:master.


Idcard error

Getting error when executing...
./createPeerAdmin.sh
Using composer-cli at v0.19.4
Typeerror: IdCard is not a constructor
Error: Unable to read file<EMAIL_ADDRESS>Typeerror: Admin connection is not a constructor

@swatikrishnani would you be able to provide more detail regarding the os?  It seems the card location maybe the issue here where its storing cards

@swatikrishnani - so I am using "Using composer-cli at v0.19.19" - can you give this a try - it is working for me.

Yup it's working


Reduce built-in rocket logs

Not sure if we want to put it into the release but the logs in grafana are unreadable with the CLI colors enabled. See https://github.com/itchysats/itchysats/issues/1278.

bors r+


Revendor hive to 70b666ec8

Hive needs to be vendored at the same commit level as it is deployed in ARO. One reason, as described in the linked card, is that changes in APIs can lead to unintended edits during round-trip Get()/Update() flows.
Which issue this PR addresses:

Partially Fixes ARO-3801
What this PR does / why we need it:
Vendored hive code needs to be at the same commit level as what's deployed. This will avoid many issues; but the one in play here is round tripping with Get() and Update()

Test plan for issue:
Build. Deploy. Try again.

Is there any documentation that needs to be updated for this PR?
Is there documentation on the CI/CD process? It should be updated to note that ARO-RP needs to revendor hive to match whatever commit level is going to be deployed.

@microsoft-github-policy-service agree company="Red Hat"

/assign @bennerv
?

/azp run ci,e2e

/azp run ci,e2e


get rid of quickapp

this module is some years-old detritus and I should probably just be using some xib files for the menus or whatever

well it's a separate package now and issues about improving it should be there


Fix #459: reduce timestamptz precision

Closes #459
Changes:

Reduce precision of timestamptz columns to milliseconds in submissions and submission_defs tables

What has been done to verify that this works as intended?

Added integration test

Why is this the best possible solution? Were any other approaches considered?

see the discussion on the issue #459

How does this change affect users? Describe intentional changes to behavior and behavior that could have accidentally been affected by code changes. In other words, what are the regression risks?
NA
Does this change require updates to the API documentation? If so, please update docs/api.md as part of this PR.
NA
Before submitting this PR, please make sure you have:

[ ] run make test-full and confirmed all checks still pass OR confirm CircleCI build passes
[ ] verified that any code from external sources are properly credited in comments

There is still a separate but related issue: Only using submissionDate > xxx filter criterion can skip submision(s)
Scenario:
Assume user has ETL proceduce where they are fetching new submissions periodically by using filter submissionDate greater than submissionDate of last known submission. Then consider following sequence of events:
t0: lastTimestamp is t0
t1: new submission(1)
t1: get submissions with submissionDate > t0 -- submission(1) is returned and lastTimestamp is t1
t1: new submission(2)
t2: get submissions with submissionDate > t1 -- no submission is returned

This can always happen no matter what the database timestamp precision is.  Following test captures the scenario.
it.only('should not skip submission', testService(async (service, { run }) => {
  const asAlice = await service.login('alice', identity);

  let lastTimestamp = '2022-01-01T09:00:00.015Z';

  // ****************************************************************************************
  // Simulate concurrent requests
  // Assume following three requests are executed at 2022-01-01T09:00:00.020Z
  // But there is an order at higher precision i.e. microsecond or picosecond
  // ****************************************************************************************
  {
    await asAlice.post('/v1/projects/1/forms/withrepeat/submissions')
    .send(testData.instances.withrepeat.one)
    .set('Content-Type', 'text/xml')
    .expect(200)
    .then(() => run(sql`update submissions set "createdAt"='2022-01-01T09:00:00.020Z'`));

    lastTimestamp = await asAlice.get(`/v1/projects/1/forms/withrepeat.svc/Submissions?$filter=__system/submissionDate gt ${lastTimestamp}`)
      .expect(200)
      .then(({ body }) => {
        body.value.length.should.be.eql(1);
        body.value[0].__id.should.be.eql('rone');
        return  body.value[0].__system.submissionDate;
      });

    await asAlice.post('/v1/projects/1/forms/withrepeat/submissions')
      .send(testData.instances.withrepeat.two)
      .set('Content-Type', 'text/xml')
      .expect(200)
      .then(() => run(sql`update submissions set "createdAt"='2022-01-01T09:00:00.020Z'`));
  }
  // ****************************************************************************************

  await asAlice.get(`/v1/projects/1/forms/withrepeat.svc/Submissions?$filter=__system/submissionDate gt ${lastTimestamp}`)
    .expect(200)
    .then(({ body }) => {
      body.value.length.should.be.eql(1);
      body.value[0].__id.should.be.eql('rtwo');
    });
}));

Possible solution:
Recommend users to use submissionDate > xxx and submissionDate < xxx in ETL and similar workflows


Running a client via a DLL does not callback after BeginConnect() successfully connects.

Describe the bug
Importing the DLL into Unity creates some issues. Using only the source code results in everything executing fine. I want to support both the DLL and importing the source code. In the DLL... BeginConnect() does not work as intended. This is when it's ran in Unity via a DLL. When the client is ran via an executable, the command line, or in Visual Studio then it runs fine.
The AsyncCallback never happens in BeginConnect(). But it connects! It just doesn't callback for some odd reason. I've asked around and did some research the for about a full day. Not getting very far. This is the last bit to move to the next phase.
You can find information on it here: Client.cs & BaseClient.cs.
BaseClient contains BeginConnect(). Client is what contains added functionality. Unity uses Client.
To Reproduce
There are two solutions in the structure branch. One for hosting a server / stress-testing client connections (5000 tested so far). The other for deploying a client only build. If you open SustenetClient.sln and go to the post build script, you can define a project location to automatically output it to. I'll eventually change it to have an option that copies the  source code instead of the DLL so compile times are faster.
Steps to reproduce the behavior:

Go to 'SustenetClient.sln'
Optional: Go to the post build settings and change the directory to someplace that exists, preferably a test project.
Build the project, copy the DLL if it wasn't done for you automatically with step 2.
Declare a Sustenet.Clients.Client client and initialize it Start().
In Update() call ThreadManager.UpdateMain().

Expected behavior
Calling Connect() should result in ConnectCallback triggering like it does when a .cs file is used instead of a DLL.
Desktop (please complete the following information):

OS: Windows 10

Additional context
The code below can be used to get a quick setup with the DLL attached, or you can still build your own DLL and use the code as well.
SustenetClient.zip (DLL) ./TestUnityProject/Sustenet/SustenetClient.dll
./TestUnityProject/Sustenet/ClientManager.cs
using UnityEngine;
using UnityEngine.UI;
using Sustenet.Transport;

public class ClientManager : MonoBehaviour
{
    public Client client;
    public Button btn;

    // Start is called before the first frame update
    void Start()
    {
        client = new Client();

        btn.onClick.AddListener(() => client.Connect());
    }

    // Update is called once per frame
    void Update()
    {
        ThreadManager.UpdateMain();
        Debug.Log(client);
    }
}

./TestUnityProject/Sustenet/Client.cs
using System.Collections.Generic;
using UnityEngine;
using Sustenet.Network;

public class Client : Sustenet.Clients.Client
{
    public Client() : base(debug: false) { }

    protected override void InitializeClientData()
    {
        Debug.Log("Initializing...");

        tcp.onConnected.Run += () => {
            Debug.Log("Successfully connected to the master server.");
        };

        tcp.onReceived.Run += (data) => {
            Debug.Log("Testing onReceived: " + data);
        };

        tcp.onDebug.Run += (msg) => DebugClient(msg);

        tcp.onDebug.RaiseEvent("Testing onDebug");

        packetHandlers = new Dictionary<int, PacketHandler>()
        {
            { (int)ServerPackets.welcome, this.Welcome }
        };
    }

    protected void DebugClient(string msg)
    {
        Debug.Log($"Client#{id}: {msg}");
    }
}

This problem was resolved by changing the target framework in the SustenetClient.csproj to .NET Framework 4.5 and changing the target framework in Unity's Build Settings to .NET Framework 4.x.


ModuleNotFoundError: No module named 'google.api'

Traceback (most recent call last):
File "C:/Users/farha/Desktop/VoicebotRuuh_6_langs_Modified - Copy/lol.py", line 7, in
from google.cloud import speech
File "C:\Python36-32\lib\site-packages\google\cloud\speech.py", line 17, in
from google.cloud.speech_v1 import SpeechClient
File "C:\Python36-32\lib\site-packages\google\cloud\speech_v1_init_.py", line 17, in
from google.cloud.speech_v1.gapic import speech_client
File "C:\Python36-32\lib\site-packages\google\cloud\speech_v1\gapic\speech_client.py", line 23, in
import google.api_core.operation
File "C:\Python36-32\lib\site-packages\google\api_core\operation.py", line 45, in
from google.longrunning import operations_pb2
File "C:\Python36-32\lib\site-packages\google\longrunning\operations_pb2.py", line 16, in
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
ModuleNotFoundError: No module named 'google.api'

@Farhan1998 Can you please show the output of pip freeze?

Sure sir, Thank you !
This is the output of pip freeze
appdirs==1.4.3
appier==1.16.29
atomicwrites==1.1.5
attrs==17.4.0
backcall==0.1.0
backports.functools-lru-cache==1.5
beautifulsoup4==4.6.3
bleach==2.1.3
bs4==0.0.1
cachetools==2.1.0
certifi==2018.8.24
cffi==1.11.5
chardet==3.0.4
ChatterBot==0.8.7
chatterbot-corpus==1.1.2
chromedriver==2.24.1
click==6.7
cmake==3.12.0
colorama==0.3.9
cycler==0.10.0
decorator==4.3.0
dogpile.cache==0.6.7
entrypoints==0.2.3
enum34==1.1.6
ez-setup==0.9
fasteners==0.14.1
fbchat==1.4.0
Flask==1.0.2
future==0.16.0
futures==3.2.0
gapic-google-longrunning==0.11.2
gcloud==0.18.3
google==2.0.1
google-api==0.1.12
google-api-core==1.3.0
google-api-python-client==1.7.4
google-apitools==0.5.23
google-auth==1.5.1
google-auth-httplib2==0.0.3
google-cloud==0.34.0
google-cloud-core==0.28.1
google-cloud-speech==0.35.0
google-cloud-translate==1.3.1
google-endpoints==4.6.1
google-endpoints-api-management==1.10.0
google-gax==0.14.1
google-search==1.0.2
google-speech==1.0.16
googleapis-common-protos==1.5.3
googletrans==2.3.0
grpc-google-longrunning-v2==0.8.1
grpcio==1.14.2
gTTS==2.0.1
gTTS-token==1.1.1
html5==0.0.9
html5lib==1.0.1
httplib2==0.11.3
idna==2.7
indic-transliteration==1.6.5
ipykernel==4.8.2
ipython==6.5.0
ipython-genutils==0.2.0
itsdangerous==0.24
jedi==0.12.1
Jinja2==2.10
jsonschema==2.6.0
jupyter-client==5.2.3
jupyter-core==4.4.0
kiwisolver==1.0.1
livelossplot==0.2.0
lxml==4.2.4
MarkupSafe==1.0
mathparse==0.1.1
matplotlib==2.2.2
mistune==0.8.3
monotonic==1.5
more-itertools==4.2.0
morfessor==2.0.4
nbconvert==5.3.1
nbformat==4.4.0
nltk==3.3
notebook==5.6.0
numpy==1.14.5
oauth2==1.9.0.post1
oauth2client==3.0.0
oauthlib==2.1.0
pandocfilters==1.4.2
parso==0.3.1
pickleshare==0.7.4
pipenv==2018.7.1
pluggy==0.6.0
ply==3.8
polyglot==16.7.4
prometheus-client==0.3.1
prompt-toolkit==1.0.15
protobuf==3.6.1
protorpc==0.12.0
py==1.5.4
pyasn1==0.4.4
pyasn1-modules==0.2.2
PyAudio==0.2.11
pycparser==2.18
pycryptodomex==3.6.6
Pygments==2.2.0
pyjwkest==1.0.9
pylru==1.1.0
pymongo==3.7.1
pyparsing==2.2.0
PySoundCard==0.5.2
PySoundFile==0.9.0.post1
pytest==3.6.3
python-appengine==1.9.15
python-dateutil==2.6.1
python-twitter==3.4.2
pytz==2018.5
pywinpty==0.5.4
PyYAML==3.13
pyzmq==17.1.0
regex==2018.8.29
requests==2.19.1
requests-oauthlib==1.0.0
rsa==3.4.2
selenium==3.14.0
semver==2.7.7
Send2Trash==1.5.0
simplegeneric==0.8.1
six==1.11.0
sounddevice==0.3.12
speech==0.5.2
SpeechRecognition==3.8.1
SQLAlchemy==1.2.11
strict-rfc3339==0.7
terminado==0.8.1
testpath==0.3.1
tornado==5.1
traitlets==4.3.2
transliterate==1.10.1
Unidecode==1.0.22
uritemplate==3.0.0
urllib3==1.23
urllib5==5.0.0
virtualenv==16.0.0
virtualenv-clone==0.3.0
wcwidth==0.1.7
web-cache==1.0.2
webencodings==0.5.1
webob==1.8.2
Werkzeug==0.14.1
wget==3.2
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Tres Seaver<EMAIL_ADDRESS>Sent: Wednesday, September 5, 2018 6:35:50 PM
To: GoogleCloudPlatform/google-cloud-python
Cc: Iftekharuddin Mohammed; Mention
Subject: Re: [GoogleCloudPlatform/google-cloud-python] ModuleNotFoundError: No module named 'google.api' (#5887)
@Farhan1998https://github.com/Farhan1998 Can you please show the output of pip freeze?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/GoogleCloudPlatform/google-cloud-python/issues/5887#issuecomment-418723036, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AY_RUWyFsmyEnMduEwgik8wudHXzzhtPks5uX8wugaJpZM4WaSvW.

OK, so the google-api distribution is in there.  Something is broken in how the various packages are installed in to the google namespace. Can you show the output from the following:
import google
print(google.__path__)

Thank you for helping me out……am in real need of a solution to this problem. Thank you !
<EMAIL_ADDRESS>Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Tres Seaver<EMAIL_ADDRESS>Sent: Wednesday, September 5, 2018 6:44:44 PM
To: GoogleCloudPlatform/google-cloud-python
Cc: Iftekharuddin Mohammed; Mention
Subject: Re: [GoogleCloudPlatform/google-cloud-python] ModuleNotFoundError: No module named 'google.api' (#5887)
OK, so the google-api distribution is in there. Something is broken in how the various packages are installed in to the google namespace. Can you show the output from the following:
import google
print(google.path)
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/GoogleCloudPlatform/google-cloud-python/issues/5887#issuecomment-418725866, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AY_RUfhI-UMyFXOBoARDfj8Uyypus2D7ks5uX85EgaJpZM4WaSvW.

@Farhan1998 Hmm, I can't see the image referenced there:  can you upload it via the web UI, rather than mail?
One thing to try is to create a fresh virtualenv and install only the bits your application actually needs (the list from pip freeze has a lot of stale packages in it).  E.g.:
$ python3.6 -m venv newvenv
$ cd newvenv
$ bin/pip install google-cloud-speech
$ bin/python
>>> from google.cloud import speech

Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.

import google
print(google.path)
['C:\Python36-32\lib\site-packages\google']

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Tres Seaver<EMAIL_ADDRESS>Sent: Wednesday, September 5, 2018 6:57:21 PM
To: GoogleCloudPlatform/google-cloud-python
Cc: Iftekharuddin Mohammed; Mention
Subject: Re: [GoogleCloudPlatform/google-cloud-python] ModuleNotFoundError: No module named 'google.api' (#5887)
@Farhan1998https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FFarhan1998&data=02|01||47219440ed6f407ca14108d61333503a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717508435178279&sdata=Av6pVXtjFXmQA%2BsRmJV4req2dzdMfOmGJ0kX1deD%2BG0%3D&reserved=0 Hmm, I can't see the image referenced there: can you upload it via the web UI, rather than mail?
One thing to try is to create a fresh virtualenv and install only the bits your application actually needs (the list from pip freeze has a lot of stale packages in it). E.g.:
$ python3.6 -m venv newvenv
$ cd newvenv
$ bin/pip install google-cloud-speech
$ bin/python

from google.cloud import speech

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGoogleCloudPlatform%2Fgoogle-cloud-python%2Fissues%2F5887%23issuecomment-418729921&data=02|01||47219440ed6f407ca14108d61333503a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717508435178279&sdata=tbRaKAIt52JVRPyKH5v5N1ZAjvFA%2F6rtMPF7ORMKlNY%3D&reserved=0, or mute the threadhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAY_RUYtZNo7giRN45yymNw8SWRDmooajks5uX9E5gaJpZM4WaSvW&data=02|01||47219440ed6f407ca14108d61333503a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717508435178279&sdata=ualCusoCC8HMA4ysMQX4hAlw%2BRIdDGsUNkdSksY61UA%3D&reserved=0.

Hey, it’s working in virtual environment now. But the same file again, is not working in the actual environment. Why is this happening?
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Tres Seaver<EMAIL_ADDRESS>Sent: Wednesday, September 5, 2018 6:57:21 PM
To: GoogleCloudPlatform/google-cloud-python
Cc: Iftekharuddin Mohammed; Mention
Subject: Re: [GoogleCloudPlatform/google-cloud-python] ModuleNotFoundError: No module named 'google.api' (#5887)
@Farhan1998https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FFarhan1998&data=02|01||47219440ed6f407ca14108d61333503a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717508435178279&sdata=Av6pVXtjFXmQA%2BsRmJV4req2dzdMfOmGJ0kX1deD%2BG0%3D&reserved=0 Hmm, I can't see the image referenced there: can you upload it via the web UI, rather than mail?
One thing to try is to create a fresh virtualenv and install only the bits your application actually needs (the list from pip freeze has a lot of stale packages in it). E.g.:
$ python3.6 -m venv newvenv
$ cd newvenv
$ bin/pip install google-cloud-speech
$ bin/python

from google.cloud import speech

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGoogleCloudPlatform%2Fgoogle-cloud-python%2Fissues%2F5887%23issuecomment-418729921&data=02|01||47219440ed6f407ca14108d61333503a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717508435178279&sdata=tbRaKAIt52JVRPyKH5v5N1ZAjvFA%2F6rtMPF7ORMKlNY%3D&reserved=0, or mute the threadhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAY_RUYtZNo7giRN45yymNw8SWRDmooajks5uX9E5gaJpZM4WaSvW&data=02|01||47219440ed6f407ca14108d61333503a|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717508435178279&sdata=ualCusoCC8HMA4ysMQX4hAlw%2BRIdDGsUNkdSksY61UA%3D&reserved=0.

@Farhan1998 Something in the other bits you've installed (beyond google-cloud-speech) is messing up the google namespace package.

I solved it now. I copied all the files and folders from the site-packages directory of the virtual environment to the site-packages folder of the actual environment. (copied and replaced). Now everything is working fine. Thankx for the identification !
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Tres Seaver<EMAIL_ADDRESS>Sent: Wednesday, September 5, 2018 7:46:21 PM
To: GoogleCloudPlatform/google-cloud-python
Cc: Iftekharuddin Mohammed; Mention
Subject: Re: [GoogleCloudPlatform/google-cloud-python] ModuleNotFoundError: No module named 'google.api' (#5887)
@Farhan1998https://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FFarhan1998&data=02|01||401250438122470015dc08d6133a2891|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717537834556579&sdata=mfNYG6oXs%2FHwPug%2Ba%2FtrAnDkVw%2FQL%2F%2F2wETmkoK1iW0%3D&reserved=0 Something in the other bits you've installed (beyond google-cloud-speech) is messing up the google namespace package.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGoogleCloudPlatform%2Fgoogle-cloud-python%2Fissues%2F5887%23issuecomment-418746837&data=02|01||401250438122470015dc08d6133a2891|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717537834556579&sdata=6bUOoI3Gvd83lvujK0HKGIUgwXnDyMthGssQTJrTTO0%3D&reserved=0, or mute the threadhttps://eur04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAY_RUUpr-QaDFTWJSWxLKsJ4JqqHz96Mks5uX9y1gaJpZM4WaSvW&data=02|01||401250438122470015dc08d6133a2891|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|636717537834556579&sdata=uWlfv%2BdIbIQstmt%2BhKoMLOxpAo8K%2B8tbfF%2FioMCnwSU%3D&reserved=0.

@Farhan1998 I'm glad you worked that out!

Thank you for identifying that it will work in virenv.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Tres Seaver<EMAIL_ADDRESS>Sent: Thursday, September 6, 2018 2:12:59 AM
To: GoogleCloudPlatform/google-cloud-python
Cc: Iftekharuddin Mohammed; Mention
Subject: Re: [GoogleCloudPlatform/google-cloud-python] ModuleNotFoundError: No module named 'google.api' (#5887)
@Farhan1998https://github.com/Farhan1998 I'm glad you worked that out!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/GoogleCloudPlatform/google-cloud-python/issues/5887#issuecomment-418874552, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AY_RUXnHH1rRuzcD8fcuFMJnw791MsKtks5uYDdTgaJpZM4WaSvW.

Can you please help me out with this small issue too?
https://stackoverflow.com/questions/52194281/how-to-handle-errors-raised-in-an-imported-python-package-code
From: Tres<EMAIL_ADDRESS>Sent: Thursday, September 6, 2018 2:13 AM
To<EMAIL_ADDRESS>Cc: Iftekharuddin<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [GoogleCloudPlatform/google-cloud-python] ModuleNotFoundError: No module named 'google.api' (#5887)
@Farhan1998https://github.com/Farhan1998 I'm glad you worked that out!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/GoogleCloudPlatform/google-cloud-python/issues/5887#issuecomment-418874552, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AY_RUXnHH1rRuzcD8fcuFMJnw791MsKtks5uYDdTgaJpZM4WaSvW.


@dataclass does not work when ft function returns multiple elements

Hi!
I am having the following scenario using the dataclass decorator with a class
When returning multiple elements in the __ft__ function I am getting a JSON representation of the class instead of HTML elements
Code:
# /src/pages/home/home_page.py
from fasthtml.common import *;

@dataclass
class HomePage:

    def __ft__(self):
        return H1('HomePage'), Div('hello!');

# main.py
from fasthtml.common import *

from src.pages.home.home_page import *;

def e404_handler(req,exc):
    return Titled('Page not found');

app, route = fast_app(exception_handlers={404: e404_handler});

@route('/')
def get():
    return HomePage();

I also tried:
@dataclass
class HomePage:

    def __ft__(self):
        return Titled('HomePage', Div('hello'))

Result:

I had to rewrite the __tf__ function as follows in order to get it work:
# /src/pages/home/home_page.py

from fasthtml.common import *;

@dataclass
class HomePage:

    def __ft__(self):
        return Div(H1('HomePage'), Div('hello!'));

@Ivan-hdz Checking it.

Thanks @Ivan-hdz Raising a fix.


Missing "Installation in bare React Native projects" mentioned in Expo docs

The installation documentation on the expo docs mentions information in the ReadMe to help install into managed projects but its missing

Hello @conor909!
From what I can see, this sentence is generic in the Expo docs, and applies (is displayed) for each and every library listed in "Expo SDK" section. This sentence is generated from here: https://github.com/expo/expo/blob/main/docs/components/plugins/InstallSection.tsx
I'm afraid it is up to the Expo maintainers to address this however they see fit, and this issue should be moved to Expo's repo. I will close this one as it doesn't really apply to this package.
As for installing this package in bare React Native projects, everything is described in Installation & Usage section of the README for the Slider project.
However, if you encounter any issue installing this project please feel free to reach out by creating new issue.
Thank you!


Allow providing function parameters schema as a string

Now you can only provide strictly defined object, but this object is not compatible with JSON schema. For example in JSON Schema you can have multiple types for property (array of types) and in FunctionParameters class "Type" is a string. Same problem with array as a root object.
I use JSchemaGenerator to generate JSON schema from expected result object and it generates schema that cannot be used in this lib.

https://github.com/betalgo/openai/issues/333
I have added the FunctionsAsObject type in the new version. This means that you can use your own function builder. Please review the code and let me know if this would be suitable for your solution as well.


running "gormgen": exec: "gormgen": executable file not found in $PATH

running "gormgen": exec: "gormgen": executable file not found in $PATH

Do your $PATH have $GOPATH, if have, try source your bash profile.


Touchables inside SwipeRow

Hi,
you think with the current setup it would be possible to keep touchables inside a SwipeRow beeing able to respond to touch press? It works for me in the simulator but not on an actual Android device. Swiping works just fine but the press is no longer triggered on the TouchableHighlight inside the row.
Thanks a log

Hey @matthiasleitner could you paste some code here showing how you're rendering the SwipeRow / SwipeListView? I just tried this on a device and it worked for me. The TouchableHighlight nested inside the row does not close the row but the onPress function IS triggered. Happy to look more if you could show an example. Thanks!

@jemise111 my renderRow function basically looks like in the snippet below - the real structure is a little more complex but it behaves the same when reduced to the sample below.
`  _renderRow(entry) {
return
<TouchableHighlight style={[styles.fab} onPress={this._onPressIncrement.bind(this, entry)}>
+

;
}
swipeRow: {
flex: 1,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
paddingTop: 10,
paddingRight: 10,
paddingLeft: 15,
paddingBottom: 10
}
`

@matthiasleitner Just tried your code on a Moto G device and it's working just fine for me. Tapping on the "+" (or anywhere on the row) runs the _onPressIncrement function. Couple of things:

There's an extra bracket causing a syntax error in the code you pasted. Right before "styles.fab". But I doubt this solves your issue.
If your issue is that you want the row to run the _onPressIncrement function AND auto swipe closed when it is touched then the TouchableHighlight must be the topmost parent element, not the View. Like this:

 _renderRow(entry) {     return (       <TouchableHighlight style={styles.fab} onPress={this._onPressIncrement.bind(this, entry)}>          <View style={styles.swipeRow}>             <Text style={styles.buttonText}>+</Text>          </View>      </TouchableHighlight>   }
Give those a shot and let me know

@matthiasleitner I finally ran into this issue! I tried this on a newer Android devices and it behaves differently than an older one. For some reason on older devices (and iPhones and emulators) a Touchable still recognizes a tap even if there is a panresponder responding to touch events. On (presumably) newer Android devices this isn't the case and the the panresponder intercepts the touch.
#16 fixes this. Get the latest (v0.1.3) from npm and it should be fixed.
Leaving this open for now as there is still an issue where your touchable's underlayColor or activeOpacity is not triggered. Not quite sure how to handle that yet.

@jemise111 Thanks for the follow up, after your last post I also tested on another device where it was working after that I couldn't put in any more time to investigate. Will try with the new version. Thanks a lot!

@matthiasleitner if you know it what phones / versions of Android we're you using when this worked and not worked? There's something going on with event bubbling/propagation not happening on certain devices but I can't nail down what exactly it is.
Also it appears my latest fix works for a touchable row, so the _renderRow function I posted above should work, but I believe a touchable nested inside a row a few levels deep won't work. Still need to find a fix for that. Just FYI

@jemise111  The device it does not work with is a cheap DOOGEE X5 running android version 5.1. Also tested on a variety of Android 4.4.2 Devices (e.g. Galaxy S4 Mini) where it was working fine.
Just tried with version 0.1.3 and it was still not working in my case, but I've to nest my touchable a few levels deep.

@matthiasleitner fixed it! I'm very confident the latest version (v0.1.4) will fix the issue on all devices. Before I was hacking around detecting touches and manually triggering the onPress functions.
Now the SwipeRow won't capture touch events if the gesture isn't a swipe. So the appropriate onPress function will run (including the underlay or opacity animation 😄 ). And it shouldn't matter if your touchable is nested or not.
When you have a second can you get the latest version and try it out for me? Would love to close this issue. Much appreciated!

@jemise111 just re-checked and it works on all the devices I have available. thanks a lot for your efforts!

@matthiasleitner awesome, glad to hear it. Thanks for testing

I was experiencing the same problem on an iPhone 6S Plus. It would work on the simulator but not on the device. Seems to be cleared up in the new version though, thanks!

@jdmunro np! Yeah I was reading somewhere that this problem happens on newer Androids and iPhones that have force touch. Glad it's working though


Multi-step input candidate view position incorrect when using physical keyboard

Steps to Reproduce

Open Flutter Gallery and open the Text Fields demo.
Using an iPad with a physical keyboard attached, tap on the Name field.
Switch to Japanese text input and enter some text (e.g., kannji).

The conversion candidates view is located at 0,0 instead of near the composing region.
Current Flutter behaviour

Expected behaviour (Google Inbox)

Flutter Doctor
Running a local engine with iOS text editing patches applied to enable multi-stage text entry. Base Flutter SDK is:
[✓] Flutter (on Mac OS X 10.12.4 16E195, channel master)
    • Flutter at /Users/cbracken/src/flutter/flutter
    • Framework revision c12c019bcc (6 hours ago), 2017-04-11 13:48:04 -0700
    • Engine revision 5d9a642257
    • Tools Dart version 1.23.0-dev.11.6

Three years on

when does this solve?


tsdb: move exemplar series labels to index entry

Signed-off-by: yeya24<EMAIL_ADDRESS>
This pr moves per-exemplar series labels to the index entry struct. As mentioned in https://github.com/prometheus/prometheus/pull/6635/files#r578162563, it is unnecessary to store series labels multiple times for the same series.

Restarted test https://app.circleci.com/pipelines/github/prometheus/prometheus/11835/workflows/361fd691-1e46-4de6-a588-7fdb020a4d73/jobs/52453 (flaky?)


Add url_CODE and email_CODE

Some websites have a different URL, and sometimes even a different email, for each language.
It would be useful to have url_CODE and email_CODE for language specific URLs and emails.
The url and email fields will continue to be the default, when the URLs and emails are the same regardless of the language.

The url_CODE already exists, we would just have to add email_CODE, but I'm thinking whether this would be very frequent and if people would remember to use it.


Blank page appears after trying to save a reaction with an R-Group member

Affected versions: Standalone, Remote.
Release/2.2
Steps to reproduce:

Launch Ketcher.
Draw a structure on the canvas, e.g. chain.
Define it as an R-Group member using 'R-Group Fragment tool'.
Add the reaction arrow using 'Reaction Arrow Tool'.
Click 'Save as' button.

Expected result: 'Save structure' window is opened. It's possible to save the reaction to file.
Actual result: Blank page and error in console appear:

The issue is closed as fixed.


[backport] Bump cuDNN to v8.0.4

Backport of #4065

[automatic post] Jenkins, test this please.

Jenkins CI test (for commit d86e7acbc52596b1d96df45add14d78cba5e45c1, target branch v8) succeeded!


Unknown/Unsupported chromebook model: Panther

[](Describe the bug
I'm running the script on an Asus Chromebox CN60 with Fedora 41, which is supported by chrultrabook
Boardname
Panther
Logs
Generate logs with wget https://raw.githubusercontent.com/chrultrabook/linux-tools/main/debugging.sh; bash debugging.sh and attach the output here.
)
debug-logs-Panther-2024-12-18_18h34m.zip

Panther doesn't need this script.


Error in EfficientNet V2 MBConvBlock

System information.

Have I written custom code (as opposed to using a stock example script provided in Keras): No.
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): N/A
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below): 2.11
Python version: 3.9
Bazel version (if compiling from source): N/A
GPU model and memory: N/A
Exact command to reproduce: N/A

Describe the problem.
There is an error in EfficientNetV2's MBConvBlock - the final conv layers are not applied if Squeeze and Excitation block is not applied. This is an error, found by @DavidLandup0 in Keras-CV repo.
"Luckily" for MBConvBlock the SE Block is always applied so no need to change the weights.
Describe the current behavior.
Currently, the model works by accident.
Describe the expected behavior.
The MBConvBlock should work correctly even without SE Block.
Contributing.

Do you want to contribute a PR? (yes/no): yes I can.
If yes, please read this page for instructions
Briefly describe your candidate solution(if contributing):
Basically, we need to unindent lines 717-740 in efficientnet_v2.py

Standalone code to reproduce the issue.
N/A
Source code / logs.
Current faulty MBConvBlock implementation.
Current FusedMBConvBlock implementation, without this issue.
David's fixed implementation.
Thanks again @DavidLandup0 for finding this issue.

@sebastian-sz,
We would prefer a PR for the validation, Could you please feel free to submit a PR for the requested change to be made. Thank you!

@tilakrayal PR present at https://github.com/keras-team/keras/pull/17364

The pr has been assigned for reviewing and once it is merged this issue will move to closed status.


How to configure the icons pack from a module that use nuxt ui

Description
Hello,
To configure the icons pack to use, I add the following in the nuxt.config.ts file :
ui: {
icons: ['heroicons', 'fa-solid']
},
I want to add these icons pack inside a nuxt module that use the nuxt ui module instead.
Is it possible to do that ?
Adding the following doesn't work :
export default defineNuxtModule<ModuleOptions>({
 [...]

  async setup(options, nuxt) {
    [...]
    nuxt.options.appConfig.ui.icons = ['heroicons', 'fa-solid']
    [...]
  }
})

I'm seeing the icon pack in the configuration in nuxt dev tool but they aren't loaded.
Thank you

I assume you use installModule, you can pass the options as second param:
await installModule('@nuxt/ui', {
  icons: ['heroicons', 'fa-solid']
})

Feel free to reopen if it didn't fix your issue.

I assume you use installModule, you can pass the options as second param:
await installModule('@nuxt/ui', {
  icons: ['heroicons', 'fa-solid']
})

Sorry for this late answer. It is working well.
Thank you.


npm start command fails

Hello!
I've come across the hoodie project this morning and wanted to try it out; however, I'm running in to a little problem. Using the commands in the readme, I cloned the repo and installed hoodie. When I attempt the start command... I am faced with this:

I haven't started to dig in to the problem myself yet, so I hope someone may have an answer... else, I guess I'll figure it out on my own!
Thanks in advance for any advice/help that can be given. :)

Windows accepts backslashes, not slashes. One should change this in package.json file, depending which one OS is user on.

I’m fairly sure that npm normalizes that based on the OS. But worth testing out if that’s the case, I’d love to know! I don’t have a Windows machine myself though

Same problem on my Windows machine.
I'm going to fix it.


test: fix reset enabling deletion propagation after update

If the RSync is modified between the List call and the Update call, then the Update fails. Using MergePatch to inject the annotation makes the reset more robust.
Example failure: https://oss.gprow.dev/view/gs/oss-prow-build-kpt-config-sync/logs/kpt-config-sync-autopilot-rapid/1821388389237133312

/assign @tiffanny29631
/assign @nan-yu


⚠ Jenkins Plugins Artifactory has degraded performance

In a775a80, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1095 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 27fc01e after 30 minutes.


Update index.md

Add info block to point out that API key is region specific

Proposed changes
Add info block to point out that API key is region specific
Merge timing

ASAP once approved

It would be great to add this directly under the Destination Settings block, but I'm not sure how to add it since that block is coming from {%capture log-event-details %}

Hi @sarahrudy!
Would it be possible to update the description of the API Key value in Partner Portal to include this information? It might make more sense contextually there.

Great idea, Mark! @tcgilbert said he was able to make that change directly in Partner Portal.


add .gitattributes for window users

add a .gitattributes to tell git not to check the files out as CRLF.

how do I do that? I get all those errors after npm install.
Do you have a working version of this boilerplate please! I am new to react and am enjoying learning it.

@hornta Can you submit a PR ?

It would be more of a git config problem:
https://git-scm.com/docs/git-config#git-config-coreeol
https://git-scm.com/docs/git-config#git-config-coresafecrlf
https://git-scm.com/docs/git-config#git-config-coreautocrlf


share-preview: init at 0.3.0

Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 256453 run on x86_64-linux 1

1 package built:

share-preview

On second thought this seems very niche, so a flake outside of nixpkgs might make more sense? WDYT?

Personally I want to see all of the Gnome Circle apps, including this one in nixpkgs.

OK, I'm not against it, feel free to add yourself as maintainer because I might drop it if it becomes cumbersome :)

You can add me to the list in the nix file if you want.

You can add me to the list in the nix file if you want.

updated!


rx: 0.3.1 -> 0.3.2

Motivation for this change
New release again!
Changes: https://github.com/cloudhead/rx/compare/v0.3.1...v0.3.2
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Oops, forgot to mention you, sorry about that ^^'


How to define frontend url alias

@web - alias of the currently running application. So, if it backend application - alias will be replased as backend/web. How can I set alias @frontend_web that will be replaced as frontend/web when using in backend application?

You need to configure another URL manager: https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/topic-link-backend-frontend.md


[release-1.19] Fix revisioned default resources being filtered during analysis

Manual cherrypick required.
#46241 failed to apply on top of branch "release-1.19":
Applying: fix revisioned namespaces being filtered
Using index info to reconstruct a base tree...
M	pkg/config/analysis/local/istiod_analyze.go
M	pkg/config/model.go
Falling back to patching base and 3-way merge...
Auto-merging pkg/config/analysis/local/istiod_analyze.go
CONFLICT (content): Merge conflict in pkg/config/analysis/local/istiod_analyze.go
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 fix revisioned namespaces being filtered
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

Seems like this has been in the release-1.19 branch


Census Bureau Pre-employment Forms & Instructions – [PLEASE DO NOT REPLY]

GodSpeed
AMEN

Source URL:
https://mail.google.com/mail/u/0/#inbox/FMfcgxwJWXRkhsHTrtncfKZrDJbRNjNz
BrowserChrome 84.0.4147.56OSWindows 10 64-bitScreen Size1920x1080Viewport Size1858x928Pixel Ratio@1xZoom Level100%

Comments
INSERT HERE


chore(test) : add micro-benchmark performance test for Observable.empty

Adding additional micro test coverage for Observable.empty listed in issue https://github.com/ReactiveX/RxJS/issues/100
Tried to follow commit message style as aligned with other commits also.

merged as of fb7590a

Thanks, @kwonoj!


Bump dependency check and spring version to avoid potential FP

Motivation
Bump dependency check version to avoid potential FP
Modifications

Bump dependency check version from 6.1.6 to 7.1.0
Bump spring version from 5.3.18 to 5.3.19

/pulsarbot rerun-failure-checks


googleapi: Error 400: Cluster.name must be less than 40 characters -- when using long namespace name

Problem
Created a KubernetesCluster claim in a namespace with a long name and got this error:
    - lastTransitionTime: '2020-04-21T22:13:30Z'
      message: >-
        googleapi: Error 400: Cluster.name must be less than 40 characters.,
        badRequest
      reason: Encountered an error during resource reconciliation
      status: 'False'
      type: Synced

Using:

Wordpress v0.3.0
GCP Provider v0.8.0
GCP Sample Stack v0.4.0
Crossplane 0.10.0-rc.49.gae92a62

Expected
Provider GCP should truncate to a smaller random name as needed by the google API.
Details
WordpressInstance
apiVersion: wordpress.apps.crossplane.io/v1alpha1
kind: WordpressInstance
metadata:
  creationTimestamp: '2020-04-21T22:13:26Z'
  generation: 1
  name: wp1
  namespace: apr21-prasek-dev-gcp-ws1
  resourceVersion: '729881'
  selfLink: >-
    /apis/wordpress.apps.crossplane.io/v1alpha1/namespaces/apr21-prasek-dev-gcp-ws1/wordpressinstances/wp1
  uid: 28d78471-3390-4488-8b68-2bde0bc84b4d
spec:
  provisionPolicy: ProvisionNewCluster
status:
  conditions:
    - lastTransitionTime: '2020-04-21T22:13:28Z'
      reason: Successfully reconciled resource
      status: 'True'
      type: Synced

KubernetesCluster
apiVersion: compute.crossplane.io/v1alpha1
kind: KubernetesCluster
metadata:
  creationTimestamp: '2020-04-21T22:13:28Z'
  generation: 3
  labels:
    app: wp1
    core.crossplane.io/parent-group: wordpress.apps.crossplane.io
    core.crossplane.io/parent-kind: WordpressInstance
    core.crossplane.io/parent-name: wp1
    core.crossplane.io/parent-namespace: apr21-prasek-dev-gcp-ws1
    core.crossplane.io/parent-uid: 28d78471-3390-4488-8b68-2bde0bc84b4d
    core.crossplane.io/parent-version: v1alpha1
  name: wp1-cluster
  namespace: apr21-prasek-dev-gcp-ws1
  ownerReferences:
    - apiVersion: wordpress.apps.crossplane.io/v1alpha1
      blockOwnerDeletion: true
      kind: WordpressInstance
      name: wp1
      uid: 28d78471-3390-4488-8b68-2bde0bc84b4d
  resourceVersion: '729910'
  selfLink: >-
    /apis/compute.crossplane.io/v1alpha1/namespaces/apr21-prasek-dev-gcp-ws1/kubernetesclusters/wp1-cluster
  uid: e26bab4f-33f7-4005-87ea-b32a256f57b3
spec:
  classRef:
    apiVersion: compute.gcp.crossplane.io/v1alpha3
    kind: GKEClusterClass
    name: apr21-prasek-dev-gcp-gkeclusterclass
    uid: a9c63352-82cf-4ae7-9061-9b98675819df
  resourceRef:
    apiVersion: compute.gcp.crossplane.io/v1alpha3
    kind: GKECluster
    name: apr21-prasek-dev-gcp-ws1-wp1-cluster-2m5mn
    uid: 7bf28fc6-96b0-4bea-b6f4-686f1da7bbaa
  writeConnectionSecretToRef:
    name: wp1-cluster
status:
  conditions:
    - lastTransitionTime: '2020-04-21T22:13:30Z'
      reason: Managed claim is waiting for managed resource to become bindable
      status: 'False'
      type: Ready
    - lastTransitionTime: '2020-04-21T22:13:30Z'
      reason: Successfully reconciled resource
      status: 'True'
      type: Synced

GKECluster
apiVersion: compute.gcp.crossplane.io/v1alpha3
kind: GKECluster
metadata:
  annotations:
    crossplane.io/external-name: apr21-prasek-dev-gcp-ws1-wp1-cluster-2m5mn
  creationTimestamp: '2020-04-21T22:13:30Z'
  finalizers:
    - finalizer.gke.compute.gcp.crossplane.io
  generateName: apr21-prasek-dev-gcp-ws1-wp1-cluster-
  generation: 3
  name: apr21-prasek-dev-gcp-ws1-wp1-cluster-2m5mn
  resourceVersion: '729920'
  selfLink: >-
    /apis/compute.gcp.crossplane.io/v1alpha3/gkeclusters/apr21-prasek-dev-gcp-ws1-wp1-cluster-2m5mn
  uid: 7bf28fc6-96b0-4bea-b6f4-686f1da7bbaa
spec:
  claimRef:
    apiVersion: compute.crossplane.io/v1alpha1
    kind: KubernetesCluster
    name: wp1-cluster
    namespace: apr21-prasek-dev-gcp-ws1
    uid: e26bab4f-33f7-4005-87ea-b32a256f57b3
  classRef:
    apiVersion: compute.gcp.crossplane.io/v1alpha3
    kind: GKEClusterClass
    name: apr21-prasek-dev-gcp-gkeclusterclass
    uid: a9c63352-82cf-4ae7-9061-9b98675819df
  clusterSecondaryRangeName: pods
  enableIPAlias: true
  machineType: n1-standard-1
  network: projects/crossplane-playground/global/networks/apr21-prasek-dev-gcp-network
  networkRef:
    name: apr21-prasek-dev-gcp-network
  numNodes: 1
  providerRef:
    name: apr21-prasek-dev-gcp-gcp-provider
  reclaimPolicy: Delete
  servicesSecondaryRangeName: services
  subnetwork: >-
    projects/crossplane-playground/regions/us-west1/subnetworks/apr21-prasek-dev-gcp-subnetwork
  subnetworkRef:
    name: apr21-prasek-dev-gcp-subnetwork
  writeConnectionSecretToRef:
    name: e26bab4f-33f7-4005-87ea-b32a256f57b3
    namespace: crossplane-system
  zone: us-west1-b
status:
  conditions:
    - lastTransitionTime: '2020-04-21T22:13:30Z'
      reason: Successfully resolved resource references to other resources
      status: 'True'
      type: ReferencesResolved
    - lastTransitionTime: '2020-04-21T22:13:30Z'
      reason: Resource is being created
      status: 'False'
      type: Ready
    - lastTransitionTime: '2020-04-21T22:13:30Z'
      message: >-
        googleapi: Error 400: Cluster.name must be less than 40 characters.,
        badRequest
      reason: Encountered an error during resource reconciliation
      status: 'False'
      type: Synced

Also note this is happening on Azure as well:
apiVersion: compute.azure.crossplane.io/v1alpha3
kind: AKSCluster
metadata:
  annotations:
    crossplane.io/external-name: apr21-prasek-dev-azure-ws1-wp1-cluster-kq4wb
  creationTimestamp: '2020-04-21T22:23:44Z'
  finalizers:
    - finalizer.managedresource.crossplane.io
  generateName: apr21-prasek-dev-azure-ws1-wp1-cluster-
  generation: 2
  name: apr21-prasek-dev-azure-ws1-wp1-cluster-kq4wb
  resourceVersion: '758606'
  selfLink: >-
    /apis/compute.azure.crossplane.io/v1alpha3/aksclusters/apr21-prasek-dev-azure-ws1-wp1-cluster-kq4wb
  uid: 1a9955b8-6f92-4cb5-bcaa-bd1a6fea730d
spec:
  claimRef:
    apiVersion: compute.crossplane.io/v1alpha1
    kind: KubernetesCluster
    name: wp1-cluster
    namespace: apr21-prasek-dev-azure-ws1
    uid: 94eed131-9923-47de-9b62-e56cb8f8204d
  classRef:
    apiVersion: compute.azure.crossplane.io/v1alpha3
    kind: AKSClusterClass
    name: apr21-prasek-dev-azure-akscluster
    uid: c4738520-12c2-4591-9103-50f0ee1e4d93
  dnsNamePrefix: crossplane-aks
  location: West US
  nodeCount: 1
  nodeVMSize: Standard_B2s
  providerRef:
    name: apr21-prasek-dev-azure-azure-provider
  reclaimPolicy: Delete
  resourceGroupName: apr21-prasek-dev-azure-resourcegroup
  resourceGroupNameRef:
    name: apr21-prasek-dev-azure-resourcegroup
  version: 1.14.8
  vnetSubnetID: >-
    /subscriptions/038f2b7c-3265-43b8-8624-c9ad5da610a8/resourceGroups/apr21-prasek-dev-azure-resourcegroup/providers/Microsoft.Network/virtualNetworks/apr21-prasek-dev-azure-virtualnetwork/subnets/apr21-prasek-dev-azure-subnet
  vnetSubnetIDRef:
    name: apr21-prasek-dev-azure-subnet
  writeConnectionSecretToRef:
    name: 94eed131-9923-47de-9b62-e56cb8f8204d
    namespace: crossplane-system
status:
  conditions:
    - lastTransitionTime: '2020-04-21T23:15:26Z'
      message: >-
        [{reference:apr21-prasek-dev-azure-resourcegroup status:NotReady}
        {reference:apr21-prasek-dev-azure-subnet status:NotFound}]
      reason: 'One or more referenced resources do not exist, or are not yet Ready'
      status: 'False'
      type: ReferencesResolved
    - lastTransitionTime: '2020-04-21T22:23:46Z'
      reason: Resource is being created
      status: 'False'
      type: Ready
    - lastTransitionTime: '2020-04-21T22:23:57Z'
      message: >-
        create failed: cannot create AKSCluster:
        containerservice.ManagedClustersClient#CreateOrUpdate: Failure sending
        request: StatusCode=400 -- Original Error: Code="InvalidParameter"
        Message="The length of the node resource group name is too long. The
        maximum length is 80 and the length of the value provided is 91. Please
        see https://aka.ms/aks-naming-rules for more details." Target="name"
      reason: Encountered an error during resource reconciliation
      status: 'False'
      type: Synced
  endpoint: ''

Provider GCP should truncate to a smaller random name as needed by the google API.

@prasek We actually actively avoid taking that approach. In short, it's tough to keep up with the various (and sometimes changing) requirements of names and other cloud provider fields, so we take the approach of letting you provide an invalid value and returning the error from the cloud provider so that you can fix it.
I suggest we focus on making sure the error from the cloud provider is discoverable and easily resolvable, rather than trying to mutate user supplied values to fit the cloud provider's requirements. In this case the workaround would be to supply a crossplane.io/external-name annotation that specified a shorter name for the cluster - we may need to surface that in the app-wordpress, perhaps as an optional spec.clusterName?

rather than trying to mutate user supplied values to fit the cloud provider's requirements

would it make sense for the Reconciler to default to a shorter auto-generated default crossplane.io/external-name in configurator.go#L65 which uses {claim-namespace}-{claim-name}-{random-string} if crossplane.io/external-name isn't specified on the claim?
If we limited the auto-generated default crossplane.io/external-name to something like 40 characters (similar to truncate.LabelValue in https://github.com/crossplane/crossplane/pull/1338) it would avoid these issues by default, while still allowing users to explicitly specify an arbitrarily long crossplane.io/external-name if they want to max our their descriptive names.

we may need to surface that in the app-wordpress, perhaps as an optional spec.clusterName

Adding additional app spec fields to workaround cloud-specific name length restrictions would impact app portability, esp. if we want to validate the spec.clusterName length in the WordpressInstance API schema, so we're not asking the user to deploy the app, find the error, and then delete everything and start over with a shorter spec.clusterName that they didn't want to specify in the first place.
Perhaps it would be an OK tradeoff for things to "just work" with a less descriptive auto-generated default crossplane.io/external-name, while allowing users to opt-in to using more descriptive names that maxed out the cloud-specific name length restrictions?

This has been brought up during GCP ServiceAccount implementation as well, which allows only max of 30 characters as name.
I think the problem here is that the decision of the namespace and/or name of the claim is not made with what services that the user is going to use in mind and that sounds reasonable to me. For example, in this case I see that the namespace is chosen to enumerate a test run with a date and that's perfectly fine. However, it suddenly makes some of the resources practically unavailable for use. So, the error is not because user chose a name but because their namespace/name was incompatible.
Think of our self-service scenario. As a user, I'm given a namespace with my user-id or some long string that identifies me. If it's like 25 characters, suddenly I'm not able use N services and it's not my fault. Or thinking of CI/CD pipelines, the namespace could be some kind of UID and the pipeline would fail just because of the namespace string being long. It's also not only one resource, the max length of the name/namespace of your resource is determined by the min of max allowed length between all the resources you're provisioning. If you have GKECluster as one of the resources, then you're limited to max 40 chars even though other resources allow longer names.

In short, it's tough to keep up with the various (and sometimes changing) requirements of names and other cloud provider fields, so we take the approach of letting you provide an invalid value and returning the error from the cloud provider so that you can fix it.

IMO, this is a problem that we need to fix in our defaulting mechanism rather than something we have to suffer because cloud provider says so. We should definitely return error and not modify the config inputs, but this input is produced by us. In fact, when you look at it, I don't see a case where the allowed length of a name of the resource getting changed at all as opposed to validation of config fields. I agree that we should let the user know about the error and fix it but in this case it's not the user, it's our default name generation; user should not worry about the name length validation of N resources when they just create a namespace/name of a claim. That's not to say let's decouple it completely, but I would say it should be best-effort rather than as-is.

would it make sense for the Reconciler to default to a shorter auto-generated default crossplane.io/external-name in configurator.go#L65 which uses {claim-namespace}-{claim-name}-{random-string} if crossplane.io/external-name isn't specified on the claim?

I think the change should be per managed resource rather than on claim level, since claim doesn't know what it's going to be bound to. I would propose that we'd make NameAsExternalName accept a max length for the external name that the dev will choose in Setup of the managed reconciler, like other options. The name of the managed resource will still be <claim ns>-<claim name>-<5 rand chars> but if that name is longer than max allowed, it will be truncated until max-6 chars and -<5 rand chars> will be appended and that's going to be used as crossplane.io/external-name rather than blindly returning name of the managed resource.

it's our default name generation

I would propose that we'd make NameAsExternalName accept a max length for the external name that the dev will choose in Setup of the managed reconciler, like other options.

This sounds like it's pretty much putting the onus on each managed resource developer to keep up with the quirks and restrictions of the API. I'd prefer to downplay the assumption that we can generate an appropriate name for your resource altogether, and encourage more use of the crossplane.io/external-name annotation to give resource authors explicit control over what their resources will be named.

Adding additional app spec fields to workaround cloud-specific name length restrictions would impact app portability

I don't really see how this impacts portability, unless we're saying portability is impacted because it's asking for a cluster name and there may be no cluster at all.
Another simple approach here would be for the app (i.e. wordpress) to hold an opinion around the external names of the resources it generates. i.e. Have derive an external-name annotation from what it knows about itself, perhaps simply the name of the Wordpress app.

I just ran into this issue as well trying to spin up a wordpress instance while testing. It would be really nice if truncation was just automatically handled

This sounds like it's pretty much putting the onus on each managed resource developer to keep up with the quirks and restrictions of the API.

That's correct and I mean developer knows this information or at least it's pretty easy to find and I don't think that's a problem like spec fields because I don't expect validation rule of a resource name ever change.

Think of our self-service scenario. As a user, I'm given a namespace with my user-id or some long string that identifies me. If it's like 25 characters, suddenly I'm not able use N services and it's not my fault. Or thinking of CI/CD pipelines, the namespace could be some kind of UID and the pipeline would fail just because of the namespace string being long.

Honestly, I can't figure out a better argument than this. I would say if folks don't feel comfortable about it, then let's document that annotation really well and look for user feedback. If we decide to do the truncation at some point, the change shouldn't be a breaking one since it won't affect the existing resources.

Random followup thought - if we do end up trying to go with some kind of truncation at the managed resource level I don't think we should naively trim the right side of the string before the random suffix. As @kasey recently pointed out our generated names flow from least to most specific (does this make them big endian?) - i.e. namespace-name-random. This makes sense for Kubernetes names because it groups dynamically provisioned cluster scoped resources by namespace, i.e.:
$ kubectl get cloudsqlinstance
mycoolnamespace-sqldb-3fmfi3
mycoolnamespace-sqldb-fm2k2
somelamenamespace-postgres-mjfie

If we truncate the external name from the right we end up with potentially useless identifiers like somelame-mjfie. My preference would be to dump the namespace as soon as we overflow, so if mycoolnamespace-sqldb-3fmfi3 was too long we'd use sqldb-3fmfi3 as the random name. This is probably more useful to the resource owner, who named their claim sqldb.
One other compromise we might consider that wouldn't require explicitly encoding the maximum allowed name length into our controller code would be to respond to validation errors. If we're able to specifically identify a class of error that means "your name was too long" at creation time we may be able to write logic like:

Try the full externalname of namespace-name-5chars
If we hit ERRNAMETOOLONG try name-5chars
If we hit ERRNAMETOOLONG again, we give up and require the user to specify a name.

If we truncate the external name from the right we end up with potentially useless identifiers like somelame-mjfie. My preference would be to dump the namespace as soon as we overflow, so if mycoolnamespace-sqldb-3fmfi3 was too long we'd use sqldb-3fmfi3 as the random name. This is probably more useful to the resource owner, who named their claim sqldb.

Yeah, that makes sense.

One other compromise we might consider that wouldn't require explicitly encoding the maximum allowed name length into our controller code would be to respond to validation errors. If we're able to specifically identify a class of error that means "your name was too long" at creation time we may be able to write logic like

One other compromise we might consider that wouldn't require explicitly encoding the maximum allowed name length into our controller code would be to respond to validation errors.

@negz I don't think we should pursue this way as it requires casting to a specific error which may not be easily classifiable in that SDK or would be very specific to individual managed resources. Also Create call will have one more added complexity to check the error propagate the result back to annotation. Max length of a managed resource is well-documented and it's a standard across managed resources (all have max length) so we won't have to implement an error type for each. Even if it's not documented, one manual test would give you the error saying the limit. So, I'd go for just accepting a max length. If it's not that restrictive, they can just give 0 and we wouldn't do any check.

If we truncate the external name from the right we end up with potentially useless identifiers like somelame-mjfie. My preference would be to dump the namespace as soon as we overflow, so if mycoolnamespace-sqldb-3fmfi3 was too long we'd use sqldb-3fmfi3 as the random name. This is probably more useful to the resource owner, who named their claim sqldb.

I agree that having only namespace would be useless. I think the suggestion makes sense but I'm on the fence. If all namespace being the first gives us is the nice representation like:
$ kubectl get cloudsqlinstance
mycoolnamespace-sqldb-3fmfi3
mycoolnamespace-sqldb-fm2k2
somelamenamespace-postgres-mjfie

then we can have that via printer columns. Maybe reverse the order for all and make it name-namespace-5chars? I don't know, I'd be OK both ways. Just completely dropping the first part feels weird.

@negz Realized that the NameAsExternalName doesn't know about the namespace to do the dropping. It can derive it via mg.GetClaimReference() but that will go away if it's a part of a composition since the only thing on managed resource that points to the bound composite resource is an owner reference. So, if we wanted to drop the namespace in case overflow happens, I'm not sure if that struct is the best place to do it.
I thought that maybe we can generate the name of the managed resource with that restriction in mind but providers won't have claim reconcilers that will name the managed resources anymore and it'd be challenging to specify max len to Crossplane publication reconciler; in fact it'd affect all members of the composition even if we did since composite reconciler just propagates down composed.SetGenerateName(fmt.Sprintf("%s-", composite.GetName())).

On another note, if we deferred all that to app developer, we will need to make some changes in templating-controller to make Wordpress work because helm random generators won't help since we run helm template in each reconcile, which will generate a new random and override the existing one. Maybe a place holder in the annotation of KubernetesCluster:
crossplane.io/external-name: "_max: 40_"

and templating controller would generate an external name with max length of 40 once and replace the placeholder on the claim. I'm not fully sure how we'd make this work well with composition publications though.

Maybe reverse the order for all and make it name-namespace-5chars? I don't know, I'd be OK both ways. Just completely dropping the first part feels weird.

Another approach that would reduce the likelihood of a name overflow would be to simply stop including the namespace in the metadata.generateName of the managed resource in the first place. It really only makes it a little visually easier for humans to associate the managed resource with the claim that dynamically provisioned it. If we just used the claim name we'd still be better than dynamically provisioned PVs, which iirc just get a UUID as their metadata.name.

Another approach that would reduce the likelihood of a name overflow would be to simply stop including the namespace in the metadata.generateName of the managed resource in the first place.

@negz Sounds good, dropping the namespace completely would decrease the number of cases we hit the limit. But I'd still prefer to have the max length truncation in the external-name generator of the managed resource. The number of cases we hit the maximum is decreased by dropping the namespace but making sure it doesn't fail when we are the generator of the external-name still sounds like a more smooth UX for the users.

Not relevant anymore.