Database_сonsistency Gem Does Not Detect Some Validations

When running the database_consistency gem in my project, it indicates the absence of validations for certain fields in my model, even though I'm sure they are present. After debugging the gem, I discovered that at the time of validation checking, the model indeed lacks validations.
# RAILS CONSOLE
3.1.2 :001 > Relationship.validators
 =>
[#<ActiveRecord::Validations::PresenceValidator:0x00000001113ea3e8
  @attributes=[:descendant],
  @options={:message=>:required}>,
 #<ActiveRecord::Validations::PresenceValidator:0x000000011150b628
  @attributes=[:ancestor],
  @options={:message=>:required}>,
 #<ActiveRecord::Validations::PresenceValidator:0x00000001115083b0
  @attributes=[:ancestor_id, :descendant_id, :generations],
  @options={}>,
 #<ActiveRecord::Validations::UniquenessValidator:0x0000000111502870
  @attributes=[:ancestor_id],
  @klass=Relationship (call 'Relationship.connection' to establish a connection),
  @options={:scope=>[:descendant_id, :generations]}>]

# IRB AT VALIDATIONS CHECK IN GEM
3.1.2 :010 > model
 => Relationship(ancestor_id: integer, descendant_id: integer, generations: integer, created_at: datetime, id: integer)
3.1.2 :011 > model.validators
 =>
[#<ActiveRecord::Validations::PresenceValidator:0x000000010adea480
  @attributes=[:ancestor],
  @options={:message=>:required}>,
 #<ActiveRecord::Validations::PresenceValidator:0x000000010adf36c0
  @attributes=[:descendant],
  @options={:message=>:required}>]

This issue occurs when adding some code to a controller that is unrelated to this model. It's a very strange behavior that I'm encountering for the first time.

This issue occurs when adding some code to a controller that is unrelated to this model.

Could you please check how those missing validations are defined?
There are two options to improve this:

you write your custom database_consistency runner according to the guideline
we investigate it further and try to commit a general improvement for everybody

P.S. Happy Christmas and New Year time!

You nailed it. If you use a custom runner with loading like Dir[Rails.root.join("app/**/*.rb")].each { require _1 }, everything works correctly.
If you need any additional information to fix this issue, please feel free to ask.


fix pre-commit install process

Description
The first commit to a properly installed openpilot dev environment fails with some non-intuitive errors. This also happens after re-running tools/install_python_dependencies.sh manually to refresh dependencies.
(openpilot-py3.11) jyoung@DESKTOP-6JPRDTA:~/openpilot$ git commit --allow-empty -m "test"
[WARNING] Unstaged files detected.
[INFO] Stashing unstaged files to /home/jyoung/.cache/pre-commit/patch1707881573-5675.
ruff.....................................................................Passed
docs.....................................................................Failed
- hook id: docs
- exit code: 2

/home/jyoung/.cache/pypoetry/virtualenvs/openpilot-3UaNDeHd-py3.11/bin/python3: can't open file '/home/jyoung/openpilot/docs/abstractions.py': [Errno 2] No such file or directory

flake8...................................................................Failed
- hook id: flake8
- exit code: 1

Executable `flake8` not found

mypy.....................................................................Failed
- hook id: mypy
- exit code: 2

There are no .py[i] files in directory 'tinygrad'

subset of (CPU) tests....................................................Failed
- hook id: tests
- exit code: 5

============================= test session starts ==============================
platform linux -- Python 3.11.4, pytest-8.0.0, pluggy-1.4.0
Using --randomly-seed=2977995024
Test order randomisation NOT enabled. Enable with --random-order or --random-order-bucket=<bucket_type>
rootdir: /home/jyoung/openpilot
configfile: pyproject.toml
plugins: cov-4.1.0, cpp-2.5.0, randomly-3.15.0, xdist-3.5.0, timeout-2.2.0, hypothesis-6.47.5, flaky-3.7.0, timeouts-1.2.1, subtests-0.11.0, random-order-1.1.0
setup timeout: 0.0s, execution timeout: 0.0s, teardown timeout: 0.0s
4 workers [0 items]

============================ no tests ran in 2.00s =============================

pylint...................................................................Failed
- hook id: pylint
- exit code: 1

/home/jyoung/.cache/pypoetry/virtualenvs/openpilot-3UaNDeHd-py3.11/bin/python: No module named pylint

[INFO] Restored changes from /home/jyoung/.cache/pre-commit/patch1707881573-5675.

Fix
When tools/install_python_dependencies.sh (called from tools/ubuntu_setup.sh) sets up pre-commit, it tries to do so for openpilot and for each submodule. What it actually does is replace the openpilot pre-commit hooks eight times, the last time with tinygrad's config, and doesn't install anything at the submodule level.
pre-commit hooks install...
[WARNING] The 'files' field in hook 'test_translations' is a regex, not a glob -- matching '/*' probably isn't what you want here
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/pre-commit
pre-commit installed at .git/hooks/pre-commit

Replaced the pre-commit hook installer routine with a simpler approach that does what we need.
pre-commit hooks install...
[WARNING] The 'files' field in hook 'test_translations' is a regex, not a glob -- matching '/*' probably isn't what you want here
pre-commit installed at .git/hooks/pre-commit
Entering 'body'
pre-commit installed at /home/jyoung/openpilot/.git/modules/body/hooks/pre-commit
Entering 'cereal'
pre-commit installed at /home/jyoung/openpilot/.git/modules/cereal/hooks/pre-commit
Entering 'opendbc'
pre-commit installed at /home/jyoung/openpilot/.git/modules/opendbc/hooks/pre-commit
Entering 'panda'
pre-commit installed at /home/jyoung/openpilot/.git/modules/panda/hooks/pre-commit
Entering 'rednose_repo'
pre-commit installed at /home/jyoung/openpilot/.git/modules/rednose_repo/hooks/pre-commit
Entering 'teleoprtc_repo'
pre-commit installed at /home/jyoung/openpilot/.git/modules/teleoprtc_repo/hooks/pre-commit
Entering 'tinygrad_repo'
pre-commit installed at /home/jyoung/openpilot/.git/modules/tinygrad/hooks/pre-commit

Verification
Re-ran the install process several times, both ways, and made test commits in both openpilot and a submodule.

Converting to Draft for the moment. It's a correct change for local use, but need to work out why CI hates it.

This seems to work properly now, for both local and CI use. Ready for review.
The problem was introduced in #29175, which isn't doing what the author hoped for. I'm also not seeing the original problem he was trying to fix, but wanted to draw attention to the history in case there's a use-case I'm not aware of.


Removing tokens from the URL's hash fragment should be done via the History.replaceState() API

Bug report
Describe the bug
Currently, when a session is recovered from the URL's hash fragment, the token is removed from the hash by setting window.location.hash explicilty: https://github.com/supabase/gotrue-js/blob/30fb5729a1988dbd7f61d58ec10eb81de63f93c7/src/GoTrueClient.ts#L470
However, if the user uses the Back/Forward buttons they can still get to the tokens in the hash.
In order to avoid that, the tokens should be removed using the History.replaceState() API.
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:

Use a Supabase provided auth link (i.e. a link which contains an access_token in the hash portion, e.g. a magic link);
Notice that as soon as the access_token is consumed by the GoTrue-js library, the browser's URL no longer shows the access_token in the hash fragment of the URL;
Click on the browser's Back button and then click on the browser's Forward button;

Expected behavior
The access_token should NOT be visible to the user, even after using the Back/Forward buttons;
Actual behavior
The access_token is again visible in the browser's URL and the user MIGHT try to re-use it by refreshing the page at the current URL.
If applicable, add screenshots to help explain your problem.
System information

OS: Windows
Browser (if applies): Chrome, v102
Version of supabase-js: 1.35.3
Version of gotrue-js: 1.22.15

Will be fixed with #574.


Factual error in GZRS explanatory note: Should say asynchronous, not synchronous

The Note re: GZRS says:
"The primary difference between GRS and GZRS is how data is replicated in the primary region. Within the secondary region, data is always replicated synchronously three times using LRS. LRS in the secondary region protects your data against hardware failures."
I think this is incorrect. I think it should say:
"Within the secondary region, data is always replicated asynchronously three times using LRS"
Synchronous replication to another geo would surely involve unacceptably high latency.

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

ID: f618f40d-ae53-5c3b-d8bf-0e80614f66d3
Version Independent ID: 93083407-8f1e-b3e2-6a62-e30be5e1fbcb
Content: Data redundancy - Azure Storage
Content Source: articles/storage/common/storage-redundancy.md
Service: storage
Sub-service: common
GitHub Login: @jimmart-dev
Microsoft Alias: jammart

@kimbert
Thanks for your feedback! We will investigate and update as appropriate.

@kimbert
As per my understanding data is copied asynchronously to a single physical location in the secondary location from primary location but within the secondary region, your data is copied synchronously three times using LRS without  high latency. so the document seems correct.
Feel free to reach out to me if this explanation does not resolve your query.


Filter query parameters broken for several annotations

Using the following APIs:

/api /annotations /{annotation} /values
/api/annotations/values

I always get no results (404) when searching the following annotations:

Experimental Factory Ontology aka efo
Uberon aka uberon
Ncbi Taxonomy aka taxon

I labeled this as a bug though I may not be covering enough search terms in uberon and efo. I would have expected a result searching for 9606 in taxon.

Annotation (and namespace) search doesn't do partial matches unless you use wildcards. Here are some example requests:
EFO Example
GET http://next.belframework.org/api/annotations/efo/values?filter={%22category%22:%22fts%22,%22name%22:%22search%22,%22value%22:%22*cell%20line*%22}

Uberon
GET http://next.belframework.org/api/annotations/uberon/values?filter={%22category%22:%22fts%22,%22name%22:%22search%22,%22value%22:%22*lung*%22}

Currently species annotations are not searchable. A fix for this is forthcoming.

It appears to do partial matches now w/out wildcards. Can I leave them out?

The wildcards are required. You might be matching on the whole token value. For example searching on tiss will not find results with the tissue token. You will have to use either the whole term or wildcards:
http://next.belframework.org/api/annotations/values?filter={"category":"fts","name":"search","value":"tissue"}

http://next.belframework.org/api/annotations/values?filter={"category":"fts","name":"search","value":"tiss*"}

How is this request/response possible?
request:
next.belframework.org/api/annotations/values?size=1&filter={"category":"fts","name":"search","value":"9"}

response:
{
  "annotation_values": [
    {
      "identifier": "0001045",
      "name": "11-<IP_ADDRESS> cell",
      "type": "AnnotationConcept"
    }
  ]
}

The result is possible because 9 is a separate token within it. The SQLite FTS4 table treats . as a token separator and not a token character.
The token characters are defined as space = , - ( ) within the table creation. I should be able to add the period as a token character. Have you seen other non-alphanumeric characters apart from these?

You may want to consider taking more reponsibility from the client and exposing simple search capabilities for now. This will get us to good enough. We can go for robustness at a later point and take on the added complexity then.
If you decide to go the robust route now, there are at least three points that need addressing:

Fail to match leading *, e.g.: *ateral fails to match lateral
Fail to match both leading and trailing *, e.g.: *atera* fails to match lateral
Unexpected results when we are performing searches and match other data.

Some amplifying information on (3) as well - if we search ell and match electrosensory lateral line lobe, it needs to be apparent why we matched it.
examples
search by token
...Creveld
Using Creveld alone gets expected results:
filter:
{"category":"fts","name":"search","value":"Creveld"}

response:
{
  "identifier": "12714",
  "name": "Ellis-Van Creveld syndrome",
  "type": "BiologicalProcessConcept"
}

...Ellis-Van
Or Ellis-Van:
filter:
{"category":"fts","name":"search","value":"Ellis-Van"}

response:
{
  "identifier": "12714",
  "name": "Ellis-Van Creveld syndrome",
  "type": "BiologicalProcessConcept"
}

...syndrome
Okay, now we're getting somewhere. How about syndrome:
filter:
{"category":"fts","name":"search","value":"syndrome"}

response:
{
  "identifier": "0050120",
  "name": "hemophagocytic lymphohistiocytosis",
  "type": "BiologicalProcessConcept"
}

Okay, hemophagocytic lymphohistiocytosis is a type of syndrome, but how do I know that from the search result?
...lateral
This one makes sense:
filter:
{"category":"fts","name":"search","value":"lateral"}

response:
{
  "identifier": "0008021",
  "name": "anterior lateral line ganglion neuron",
  "type": "CellAnnotationConcept"
}

...latera*
So does this (note the trailing *):
filter:
{"category":"fts","name":"search","value":"latera*"}

response:
{
  "identifier": "0008021",
  "name": "anterior lateral line ganglion neuron",
  "type": "CellAnnotationConcept"
}

...*ateral
This doesn't (leading *):
filter:
{"category":"fts","name":"search","value":"*ateral"}

response:
HTTP/1.1 404 Not Found

...atera
Or this (leading and trailing *):
filter:
{"category":"fts","name":"search","value":"*atera*"}

response:
HTTP/1.1 404 Not Found

multiple wildcards
Multiple wildcards support is nice:
filter:
{"category":"fts","name":"search","value":"posterior lateral * ganglion *"}

response:
{
  "identifier": "1000245",
  "name": "posterior lateral line ganglion neuron",
  "type": "CellAnnotationConcept"
}

weird results
Try ell:
filter:
{"category":"fts","name":"search","value":"ell"}

response:
{
"identifier": "2002105",
"name": "electrosensory lateral line lobe",
"type": "AnatomyAnnotationConcept"
}

Not sure why I'm getting this. I suspect ell is an abbreviation, but it's not apparent.

Thanks for the write-up with examples. Very thorough and provides a nice set to test with.
The major problems seem to be:

Suffix and inner matches cannot be found.
Does not return where in the result the search matched (e.g. name, title, synonym and which part matched).

To address (1) I will have to index suffixes of identifiers, names, titles, and synonyms. For example the term carcinoma would index using carcinoma arcinoma rcinoma cinoma inoma noma oma ma aAn approach using SQLite that seems reasonable is explained here. I am in the middle of this work.
For (2) I will be able to provide which field(s) match and where (position range), but this will take longer.

Closing. Split work among a few tickets.


F5-Chariot VS Code Extension Hanging

Environment

ACC Version: v1.21.0
AS3 Version: N/A
BIG-IP Version: N/A

Summary
When attempting to use ACC Chariot extension.  ACC hangs indefinitely upon submission.
Steps To Reproduce
Steps to reproduce the behavior:

Convert following config:
ltm data-group internal dg.smartauction.static.content.types.class {
records {
application/javascript { }
css { }
gif { }
ico { }
image/gif { }
image/jpeg { }
image/png { }
image/x-icon { }
jpg { }
js { }
png { }
text/css { }
}
type string
}

2. Observe the following output:
1 [2023-04-21T16:00:32.519Z] [INFO]: ACC Details:  {
  name: 'f5-automation-config-converter',
  author: { name: 'F5 Networks' },
  description: 'F5 Automation Config Converter',
  version: '1.21.0',
  license: 'Apache-2.0',
  repository: 'git+https://github.com/f5devcentral/f5-automation-config-converter.git'
}
2 [2023-04-21T16:00:32.536Z] [INFO]: f5.chariot.convertAS3 called

### Expected Behavior
A new tab with the AS3 conversion

### Actual Behavior
A alert tab that states Converting to AS3 with ACC that continues to hang.

This problem can also be confirmed for complex iRules.  Removing the iRule and the conversion takes place in seconds, however, with the iRule in place, it will hang.


Dropdown in form doesn't auto-set when using URL?

Attach.txt
I have a dropdown in a form, and am programatically setting data to the form by setting the 'w2ui.formName.record' property.
Edit: I tried pasting code here but it got mangled so code is in attached file.
When I use the code as shown above and the form record's VEND_ID property is set to '01289', when the form is first shown the dropdown displays "Third vendor" as expected.
When I change to feeding the dropdown from a URL by uncommenting the first VEND_ID field above and commenting out the second, it doesn't work... when the form is shown the URL is never called and the dropdown is empty.  Manually typing the first part of the vendor name in the dropdown results in a call to the URL and the vendor being shown in the dropdown.
Is this expected behavior?

There are two suggestions I can offer. (1) set minLength to 0 for the field, then it will call url to fill out drop down immediately after init.
{ field: 'VEND_ID', type: 'list', required: true, options: { openOnFocus: true, url: 'ghVendors.aspx', minLength: 0, placeholder: 'Select...' } },

However, if you services returns large data set, it might not be int he first page (page size is 250) and then it will not find the item.
(2) set selected item int the record array with id and text, then your record for the form will have
record: {
VEND_ID: { id: your-id, text: 'text you want to display' }
...
}

This can be loaded from the server this way.
This should help. Close this issue if all good.

Thanks for the response!
I tried the minLength idea but it doesn't seem to work.  It may be because my page is pretty complex... the dropdown is in a form which is rendered to the main panel of a layout control which is in a popup.  The popup is triggered by double-clicking an item in a grid... when that is done I load data from the server, set it to the record property of the form, call refresh() on the form, then open the popup.  During all that, the URL for the list never gets called... that doesn't happen until you set focus to the list and type something.  But even then, the time to render the list is quite long - about 4 seconds for ~650 items.  So I don't think that technique is usable.
I'll try your second suggestion and report back.

@elaw01887 any news? Do you still have an issue with this?
If you do, could you please create a jsfiddle with the latest sources, that demeonstrates your problem?

Closing issue: no response


Linux/Darwin don't crash on spawn EBADF errors

When running on MacOS I notices that sometimes the call process spawn will crash
Error: spawn EBADF
    at ChildProcess.spawn (node:internal/child_process:421:11)
    at spawn (node:child_process:761:9)
    at Object.execFile (node:child_process:351:17)
    at exec (node:child_process:234:25)
    at /Users/xpresshd/projects/poker/node/ddr/node_modules/systeminformation/lib/filesystem.js:604:9
    at processTicksAndRejections (node:internal/process/task_queues:77:11) {
  errno: -9,
  code: 'EBADF',
  syscall: 'spawn'
}

I would like to handle it and not crash my nodejs process

@reinismu ... I have two questions

which node version you tried? I cannot reproduce it with any version
do you run systeminformation in any special context (nodemon, election, ...)??

@sebhildebrandt I use node v20.11.1 and run my code with just node.
I have a long running process that calls blockDevices every second. This happens usually after 4-5 hours of running.
maybe hitting ulimit. Invstigating now.
In any case I would like to handle that error

@reinismu I agree, handling the error makes sense ... but then I would have to do it everywhere where we have exec ... and the handling needs to be a little bit different.

@reinismu ... one more thing: running blockDevicesevery second is quite often ... this action takes at least 1-2 seconds, so I would extend the period ... and depending of the use case you have this could be even really long (or is it, that you want to detect changes like adding USB sticks, external SSDs...?)
I know. this might not solve the issue ... but still I would increase the poll interval.

@sebhildebrandt Thanks for suggestions! Will do that. Working with a legacy system and don't want to rewrite it yet.
1-2 seconds execution time might explain how it run out of file descriptors.
Ye, all exec's would need this then. This mostly just solved issue for me. Opened a PR so if someone else gets a similar issue they would have some info on it.


Unit tests

We need some.

Implemented via https://github.com/HumanBrainProject/hbp-validation-client/pull/52


  Clean all that up.

Right, I'm working on resolving these.


ETA?

v2 ticket
Any ETA for v2 version? I cant wait to use it
Ticket description:

Me too!

I just leave this here as a teaser ;)


A backslash is added before comma when the line start with dash

Describe the bug
A backslash is added before comma when the line start with dash.
To Reproduce
Steps to reproduce the behavior:

In WYSIWYG mode create a line that starts with -
add text with a comma after it
switching to markdown mode
the comma is escaped

Expected behavior
commas are not escaped
Screenshots

Desktop

Ubuntu 22.04
Vivaldi  5.5.2805.38 (Stable channel) stable (64 bits)
@toast-ui/vue-editor 3.2.2

We're adding the "backslash" symbol because the use of special characters in WYSIWYG has to work independently of markdown grammar. I think I think it's normal operation. Can you tell you a little more situation?

The backslash is only added if the line starts with "-" which is strange?
But why should commas be escaped?
When interpreting markdown generated with another editor, a "" appears.

Oh, I misunderstood.
I couldn't debug for long because I didn't have enough time, but I think this line is the problem.
/[>(){}[\]+-.!#|]/g needs to change like /[>(){}[\]\-+.!#|]/g.
+-. means range from 43 to 46. But I think we need to check a little more.


warning: this clause cannot match because a previous clause at line ... always matches

When I use let I receive one error like this
test/models/channel/input/stream/rtp_test.exs:1: warning: this clause cannot match because a previous clause at line 174 always matches
per each let used in the test case.
It does not affect running tests but it floods the console.

I've also noticed this (it happens in Pavlov's own tests), however I can't figure out the reason behind it. This other test, in a different library that uses Pavlov for testing, also has several let definitions but the warnings don't come up there.
I'm still trying to figure out why this happens, any help would be very appreciated :smile:.

After banging my head against this problem for some hours, I finally fixed it! The solution is as simple as making the function defined by calling the let macro overridable, thus allowing nested modules to override it safely, which stops the unmatchable clause warning.
Thanks for pushing me to finally fix this!

I've released version 0.2.3 which fixes this issue, along with some fixes for Elixir 1.0.5 support.

Thank you!


new crash

Hi I'm a beginner, I have a question if it's easy could you help me out? My question is what is the principle of perspective that you have implemented in your game? If you need to read memory data to realize perspective, then matrix perspective needs to read memory to realize perspective, but it seems like you don't need to read memory to realize perspective, is it similar to engine perspective? If you can, can you help me to answer my confusion, thank you very much.

Hello, I am a beginner, I have a question, if it is easy, can you help me? My question is, what is your rationale for implementing perspective in games? If you need to read memory data to achieve perspective, then matrix perspective needs to read memory to achieve perspective, but you don't seem to need to read memory to achieve perspective, is this similar to engine perspective? If possible, please help me to answer my confusion, thank you very much.

646556435

他是直接call游戏自带的函数实现的矩阵转换。


Sort Usage Profile Based on EP Time

Original issue: https://charm.cs.illinois.edu/redmine/issues/991

By default, the Usage Profile view (and most Projections views) are sorted by ascending PE index.  For the sake of improving the ease of analysis, it should be sortable on other properties, such as the amount of time spent in a particular EP on each PE.  This can be extended to an arbitrary degree, allowing sorting on different aspects of the data, such as sorting on total utilization, etc.

Original date: 2016-09-28 19:31:53

This has mostly been finished by Reuben, there are just a few small UI fixes before it can be merged.


Different behaviour when using FragmentIfcLoader twice

Describe the bug 📝
When using the FragmentIfcLoader we get different behaviour when the same model is uploaded a second time.
Reproduction ▶
https://ifcjs.github.io/components/src/fragments/FragmentIfcLoader/index.html
Steps to reproduce 🔢

Upload IFC file (in my case I used the BuildingSmart demonstrator model but I tested it with other models too)
wait till it's imported. It should have "bounding boxes" like so:

click on "Dispose fragments"
upload the same model again
the boxes are gone:

System Info 💻
System: Windows 11, RTX 2080 Super, AMD Ryzen 5 2600X
Binaries: Provided with the Website (Version: 0.0.46)
Browser: LibreWolf (Firefox) 113.0.2-1 (with WebGL turned on)

Used Package Manager 📦
npm
Error Trace/Logs 📃
Object { IfcAlignment: [], IfcCrossSection2D: [], IfcCrossSection3D: [] }
[openbim-components.js:100659:17](https://ifcjs.github.io/components/resources/openbim-components.js)
Object { isObject3D: true, uuid: "1xS3BCk291UvhgP2a6eflL", name: "Duplex_A_20110907.ifc", type: "Group", parent: null, children: (93) […], up: {…}, position: {…}, rotation: {…}, quaternion: {…}, … }
[index.html:272:17](https://ifcjs.github.io/components/src/fragments/FragmentIfcLoader/index.html)
Loading the IFC took 816.683 ms!

Validations ✅

[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a repository issue and not a framework-specific issue. For example, if it's a THREE.js related bug, it should likely be reported to mrdoob/threejs instead.
[X] Check that this is a concrete bug. For Q&A join our Community.
[X] The provided reproduction is a minimal reproducible example of the bug.

Hi @FlorianB-DE! Following up this issue.
The reference to the buildingSMART model you're talking about points to the same example page of components. May you please update the link so I can try to reproduce this using the same model?
Thanks!

Hi @HoyosJuan. Thanks for noticing. Should be fixed. In case not: https://raw.githubusercontent.com/buildingSMART/Sample-Test-Files/master/IFC 2x3/Duplex Apartment/Duplex_A_20110907.ifc
But I have this issue with any arbitrary ifc file..


osu!leaderboard performs too many queries

osu!leaderboard should only perform queries for users that have a known ign and not for each an every member of the guild!

The implementation already is as it should be. There must be a runtime exception somewhere that prevents the command from executing properly...

Module was disabled during testing, which is why the command wasn't executing.


added _DEFAULT_SOURCE to fix compilation warnings on gcc 5

To fix compilation warnings on GCC 5, you need to define _DEFAULT_SOURCE if _BSD_SOURCE is defined. This patch adds the necessary defines, to fix compilation warnings.

Thanks!


Generation time of a BranchSpot

User Story
The generation time of a cell between to divisions be a possible descriptor of its fate already in early developmental stages. Thus, it would be good, if there was a feature computer that can compute the generation time of a cell.
Acceptance criteria

Implemented as BrachSpot Feature
Result is stored per BranchSpot in the feature table

Tasks

[ ] Create a BranchSpot Feature "generation time"
[ ] Compute the time between the timepoints when the cell has occurred and when it divides into 2 new cells.
[ ] Store computed values in the feature table

@maarzt
ah, maybe the difference is that the already existing duration feature refers to the difference of timepoints (and thus has no dimension), whereas the generation time of a branch spot would be expressed in some time units and would also indicate something different, if the duration time between the individual capturings of the images is not constant.

The main issue is that BDV images do not store the time units. So we do not have access to time as we do in TrackMate :(
Tobias and co told us that they have a grant for BDV and imglib2 in which they will be able to make big changes at some point. We could propose the support of physical time units in BDV images, that would be the base for this in Mastodon.
Otherwise, we could look if physical units are supported in ZARR, and try to see if we can access them.

The main issue is that BDV images do not store the time units. So we do not have access to time as we do in TrackMate :( Tobias and co told us that they have a grant for BDV and imglib2 in which they will be able to make big changes at some point. We could propose the support of physical time units in BDV images, that would be the base for this in Mastodon. Otherwise, we could look if physical units are supported in ZARR, and try to see if we can access them.

I understand. I was not aware that time units are not stored in BDV images.
Thanks, for the hint re Tobias. I have filed an issue for BDV here: https://github.com/bigdataviewer/bigdataviewer-core/issues/153
Re ZARR: I have had a look into the format. It seems to support custom attributes (https://zarr.readthedocs.io/en/stable/tutorial.html#user-attributes). They might be used to encode time units. However, it is not clear to me, where in the processing pipeline this info would need to be added (during the imaging? during the processing in BDV?). I would need more advice before, I could work on this.
As a conclusion, for the moment the necessary pre-conditions to work on this issue are not fulfilled. I will therefore close it.


Feature/org structure

I tried to write bdd tests, but found that some kind of architectural border was necessary. So i introduced the Server class which just gets a hub prototype (until there are other reasonable lifetimemanager/groupmanager/hubclients implementations) and has a public MessageLoop func, which gets a HubConnection (that can be easily implemented by deriving from HubConnectionBase, see WebsocketHubConnection) and a HubProtocol.
I did also a rollback of the directory changes towards the standalone go package.

Looks good!

@philippseith I just want to say this is one of the best, high quality PRs I've ever received on any project 👏

Thank you! I was supported (and sometimes challenged) by a great reviewer!


See update conflicts on page of Entity Lists

See the story in the release criteria.

Sorry @sadiqkhoja, I saw getodk/central-frontend#882 fly by and thought it was for this issue. I'll unassign you here.

Tested with success!

Tested with success!


Add GUI command for shinject

Currently NimPlant only offers GUI commands for upload, execute-assembly, and inline-execute. For a proper UI experience, another GUI command should be added for the shinject module, where uploading shellcode is allowed.

Closed in https://github.com/chvancooten/NimPlant/commit/91da994803cf10f42be5fd5c32d4ec1e674cedae


ISSUE: funkagent should adopt formal function response message format

I've noticed an issue with funkagent, it's not using the formal function response message format described in the documentation
https://platform.openai.com/docs/guides/gpt/function-calling
The format should be
      messages.append(
          {
              "role": "function",
              "name": function_name,
              "content": function_response,
          }
      )  # extend conversation with function response

But instead it's using the assistant role and missing the function name:
https://github.com/aurelio-labs/funkagent/blob/a7305d3c5baba57b9adf7d5b15d02eeeccad7fba/funkagent/agents.py#L82
This is not critical, it appears, but it's a tidy up and may facilitate dropping the "answer is" text for a tiny token win.  And we don't know if this will become more important in the future.
An equivalent change is illustrated below on my Ruby on Rails agent:
https://github.com/merefield/discourse-chatbot/pull/36/commits/6b89b62fd0cf240240cf71d1a25477c391ad74a8
I've PR'd on #9

Fixed with #9


Build command is building old version, not the new determined version

Semantic Release determines 2.0.0 as the new version number but Poetry is building version 1.1.2.
My guess is that the steps semantic release is doing are:

Determining new version
Writing the new version number in the version destination specified in `tool.semantic_release.version_variable'

version_variable = [
    "xxx/__init__.py:__version__",
    "pyproject.toml:version"
]

Running the build command

Is the version variable maybe not written correctly? Otherwise I can't explain why Poetry is building the old version number.
Output of semantic-release version:
$ semantic-release version
2.0.0
The next version is: 2.0.0! 🚀
🛠 Running build command: poetry build
Building xxx (1.1.2)
  - Building sdist
  - Built xxx-1.1.2.tar.gz
  - Building wheel
  - Built xxx-1.1.2-py3-none-any.whl

Semantic Release: 8.7.0

Here is a part of the debug output of sematic-release -vv version:
           DEBUG    [semantic_release.version.version] DEBUG      version.py:148
                    version.parse: parsed build metadata '' from
                    version string 1.2.1
           DEBUG    [semantic_release.version.version] DEBUG      version.py:121
                    version.parse: attempting to parse string
                    '2.0.0' as Version
           DEBUG    [semantic_release.version.version] DEBUG      version.py:145
                    version.parse: version string 2.0.0 parsed as
                    a non-prerelease
           DEBUG    [semantic_release.version.version] DEBUG      version.py:148
                    version.parse: parsed build metadata '' from
                    version string 2.0.0
           INFO     [semantic_release.version.algorithm] INFO    algorithm.py:60
                    algorithm.tags_and_versions: found 6
                    previous tags
The next version is: 3.0.0! 🚀
           DEBUG    [semantic_release.cli.commands.version] DEBUG  version.py:82
                    version.apply_version_to_source_files: writing
                    version 3.0.0 to source paths []
           INFO     [semantic_release.cli.commands.version] INFO  version.py:344
                    version.version: Running build command poetry
                    build
🛠 Running build command: poetry build
Building xxx (1.1.2)
  - Building sdist
  - Built xxx-1.1.2.tar.gz
  - Building wheel
  - Built xxx-1.1.2-py3-none-any.whl

Is it maybe this part, that the array is empty?
                    version 3.0.0 to source paths []

Fix is renaming version_variable to version_variables as mentioned in v8 migrating docs: https://python-semantic-release.readthedocs.io/en/latest/migrating_from_v7.html#version-variable


chore: component visual regression tests using percy

Closes #DES-381
📝 Description
Percy
Added Percy SDK for Storybook and Percy's CLI.
I ultimately decided this was a way better solution than Cypress + Percy plugin just due to Storybook rendering components within an iframe. TLDR: Cypress does not play nice with iframes. It's very hard to work with the elements in inside iframes and they usually do not show up in test failure snapshots (at least with Cypress).
I found the the documentation for Percy Storybook SDK and it is super straight forward and covers all test cases I think we are interested in. If you want additional snapshots for a particular state of a component, just add a new stories in Storybook.
CI/CD

Added the Mainfest PERCY_TOKEN to project secrets
I added running visual regression tests under CI (this may not be ideal)

@bclark-p44 let me know your opinion, we can likely make this a little more deterministic (maybe only run if there is updates in packages or any .stories.tsx files)

Screenshots

Example Percy build: https://percy.io/7dd77246/Manifest/builds/23346035
Merge checklist

[ ] Added/updated tests
[ ] Added changeset

@bclark-p44 looks like we ran out of Percy snapshots 😭

Got approval from @bclark-p44 it was okay to merge. CI/CD will fail until snapshots renew in January.


feat: Implement metrics for topic

in package metrics

any plans for this issue?

Hello.
The metrics needs, and the issue will be done. But I can't say about schedule.


removed x axis scroll

This closes #185
Context
The PR modifies filters_panel.css.scss.  overflow-x: hidden was added to the div.filter_panel.  This forces the x axis div to be hidden and allow the y-axis to scroll.
Acceptance

[x] User adds a filter and no x-axis scroll is visible.
[x] User adds filters and filter area has a y-axis scroll bar.

Needs to be merged into filter_updates not merge branch


Line with space character followed by \n breaks Files.Glob templating

Output of helm version:
Client: &version.Version{SemVer:"v2.11.0", GitCommit:"2e55dbe1fdb5fdb96b75ff144a339489417b146b", GitTreeState:"clean"}
What happens:

I am glob'ing files into a config map with  {{ tpl ( (.Files.Glob "conf/*").AsConfig ) . | indent 4 }}.
Templating of the files fail with the following error:
<tpl ((.Files.Glob "c...>: error calling tpl: Error during tpl function execution for ___TEXTUAL OUTPUT OF ALL FILES IN THE FOLDER___ ....  template: my-chart/templates/configmap/my-chart.yaml:229: unclosed action

Cause of the issue:
I have an xml file in the folder I'm glob'ing.
In the middle of the xml content, I had a line which contained a space character and a following new line character like this
    <authorizer>\n
        <identifier>file-provider</identifier>\n
{SPACE_CHARACTER_HERE}\n
        <property name="whatever"></property>\n
    </authorizer>\n

This line with space character + \n breaks the templating function entirely, giving the error mentioned above. When I simply remove the space character and just leave the \n, everything works like expected.

Same error happens in the latest version Client: &version.Version{SemVer:"v2.13.0", GitCommit:"79d07943b03aea2b76c12644b4b54733bc5958d6", GitTreeState:"clean"}

@juv May I ask what is the reason for \n on every line? Is this because you editor messed up the encoding?

I was not able to produce this using this simple example.
$ cat testchart1/test.txt
<authorizer>
   <identifier>file-provider</identifier>

   <property name="whatever"></property>
</authorizer>

$ cat testchart1/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
{{ tpl ( (.Files.Glob "test.txt").AsConfig ) . | indent 4 }}

$ helm template testchart1/
---
# Source: testchart1/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: release-name-configmap
data:
    test.txt: "<authorizer>\n   <identifier>file-provider</identifier>\n \n   <property
      name=\"whatever\"></property>\n</authorizer>\n"

If you can provide me with more information, I will try and reproduce.

It also works with the \n in it.
$ cat testchart1/test2.txt
<authorizer>\n
   <identifier>file-provider</identifier>\n
 \n
   <property name="whatever"></property>\n
</authorizer>\n

$ cat testchart1/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
{{ tpl ( (.Files.Glob "test2.txt").AsConfig ) . | indent 4 }}

$ helm template testchart1/
---
# Source: testchart1/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: release-name-configmap
data:
    test2.txt: |
      <authorizer>\n
         <identifier>file-provider</identifier>\n
       \n
         <property name="whatever"></property>\n
      </authorizer>\n

@hickeyma I can confirm that this works as intended on my personal computer. I tried to reproduce it with \r\n and \n but the templating seems fine. Note that I am using Windows 10 on both machines. I will try out tomorrow on my computer at work and let you know.

I can't seem to be able to reproduce this anymore. A weird part is that another colleague of mine had the same issue. I will close this for now, until I am able to reproduce it.

Issue is closed, but anyway: I had the same problem (on Windows 7, K8S on AKS) and was able to resolve it by converting the line endings from CRLF to LF (Unix-style).

I've just encountered this too. For me converting line endings did not fix it. However removing any instance of a space before a newline fixed it.


Error of annulus rendering

Describe the error

When I write a simple script to plot an annulus, I meet an Expected condition.
Like this, But I  want to fill the entire annulus.

Code and Error
Code:

from manimlib import *
from os import system

class annulus(Scene):
    def construct(self):
        annulus = Annulus(
            inner_radius=2,
            outer_radius=3,
            # color=BLUE_A,
            fill_opacity=0.8
        )
        annulus.set_color(BLUE_E)

        self.add(annulus)

if __name__=="__main__":
    system("manimgl annulus.py annulus -so")

Error:

No error traceback.
Environment
OS System: Windows 11DEV
manim version: master 0.13
python version:3.8.12

Try: Annulus(...).reverse_points().
(But I don't know why)

This is a way and I successfully render it. Thank you, but I still want to know what happened in this.


Parse failure on decorator containing generator expression

Code like the following:
  @parameterized.named_parameters(
      {"testcase_name": "_jit_scan={}_jit_f={}".format(jit_scan, jit_f),
       "jit_scan": jit_scan, "jit_f": jit_f}
      for jit_scan in [False, True]
      for jit_f in [False, True])
  def testScanImpl(self, jit_scan, jit_f):
    pass

fails to parse with the Python language server (giving unexpected token 'for'). This is the pattern used throughout tests for the https://github.com/google/jax codebase, and is valid Python code for (at least) 2.7 and 3.5+.

I get a different error, instead complaining about the last ) in the decorator. Surrounding the generator expression in [] seems to make it go away.

Writing this:
foo = (
    {"testcase_name": "_jit_scan={}_jit_f={}".format(jit_scan, jit_f),
    "jit_scan": jit_scan, "jit_f": jit_f}
    for jit_scan in [False, True]
    for jit_f in [False, True]
)

Does not produce any messages, so it's probably an issue in what we're allowing in the decorators.


Fix for patching node with text over node with children

When patching a text vnode over a vnode with children, the children vnodes must be removed first (so that their hooks are called). The api.setTextContent call will end up removing the children elements from the DOM.

Thank you for the Pr @mariusmuja. This looks correct to me!
Can you please add a test to the tests that would fail before this fix? Thank you.

@paldepind Thanks, I added a test.

Really great! Thanks a lot :smile:


AddData tring to insert timestamp/rowversion

After using modelBuilder.Entity<>().AddData, the generated seed data add the rowversion column even those I specify it as a [timestamp] coloumn.  If I try to supply a timestamp I guess this error during migration:
Cannot insert an explicit value into a timestamp column. Use INSERT with a column list to exclude the timestamp column, or insert a DEFAULT into the timestamp column.
if I leave it as null I get this error:
System.Data.SqlClient.SqlException (0x80131904): String or binary data would be truncated.
and if I try to set it to "DEFAULT" I get this error:
The seed entity fo
If you are seeing an exception, include the full exceptions details (message and stack trace).
Exception message:
Stack trace:
``System.InvalidOperationException: The seed entity for entity type 'Operation' cannot be added because the value provided for the property 'RowVersion' is not of the type 'byte[]'. Consider using 'DbContextOptionsBuilder.EnableSensitiveDataLogging' to see the involved property values.
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator.ValidateData(IModel model)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelValidator.Validate(IModel model)
   at Microsoft.EntityFrameworkCore.Infrastructure.RelationalModelValidator.Validate(IModel model)
   at Microsoft.EntityFrameworkCore.Internal.SqlServerModelValidator.Validate(IModel model)
   at Microsoft.EntityFrameworkCore.Infrastructure.ModelSource.CreateModel(DbContext context, IConventionSetBuilder conventionSetBuilder, IModelValidator validator)
   at System.Lazy`1.ViaFactory(LazyThreadSafetyMode mode)
   at System.Lazy`1.ExecutionAndPublication(LazyHelper executionAndPublication, Boolean useDefaultConstructor)
   at System.Lazy`1.CreateValue()
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.CreateModel()
   at Microsoft.EntityFrameworkCore.Internal.DbContextServices.get_Model()
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
   at Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependencies()
   at Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider()
   at Microsoft.EntityFrameworkCore.Internal.InternalAccessorExtensions.GetService[TService](IInfrastructure`1 accessor)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func`1 factory)
   at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType)
   at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)`

### Steps to reproduce
Include a complete code listing (or project/solution) that we can run to reproduce the issue.

Partial code listings, or multiple fragments of code, will slow down our response or cause us to push the issue back to you to provide code to reproduce the issue.

```c#
 builder.HasData(new { Id = Utility.CreateNewId(), Name = x, Status = "Active,"  Description = x, RowVersion = "DEFAULT" });

Further technical details
EF Core version: (found in project.csproj or packages.config) 2.1.4
Database Provider: (e.g. Microsoft.EntityFrameworkCore.SqlServer) 2.1.4
Operating system: Windows 10
IDE: (e.g. Visual Studio 2017 15.4) Visual studio 2017

Duplicate of #11969


DataManipulation Missing

Hello,
The DataManipulation feature seems to be missing.
Do you plan to add it?
Regards.
Nicolas

well.. ill add that.
On Tue, May 19, 2015 at 3:23 PM, Nicomplex<EMAIL_ADDRESS>wrote:

Hello,
The DataManipulation feature seems to be missing.
Do you plan to add it?
Regards.
Nicolas
—
Reply to this email directly or view it on GitHub
https://github.com/sameeraroshan/visjs/issues/12.


Fix deprecation warning

DEPRECATION WARNING: ActionDispatch::IntegrationTest HTTP request methods will accept only
the following keyword arguments in future Rails versions:
params, headers, env, xhr, as

Examples:

get '/profile',
  params: { id: 1 },
  headers: { 'X-Extra-Header' => '123' },
  env: { 'action_dispatch.custom' => 'custom' },
  xhr: true,
  as: :json

This appears to break tests. If you get it working without breaking tests then I'd be happy to accept:
bundle exec rspec

@domaindrivendev, fixed the tests.

fixed the warnings for me too

This blows up the parameter passing for rails 3 since the params get passed into params[:params] as a serialized string. I think the fix is really just to check the rails version:
      if Rails::VERSION::MAJOR >= 5
        test.send(metadata[:http_verb], path, { params: body_or_params, headers: headers })
      else
        test.send(metadata[:http_verb], path, body_or_params, headers)
      end


Modify database connection scripts to fail explicitly if the connection cannot be established

Try to include some level of validation in the database connection scripts so that the connection is validated before the script exits, and exits with an error code if the connection is invalid.

Duplicate of #154


Autoscaling for nodes (working with Google Cloud Platform)

Closes #74
Summary
Provide auto-scaling without killing user pods, based on Kubernete's Unschedulable tag for nodes. See scale/README.md for expected scaling behaviors.
How to test
See README.md for directions. Please make sure kubectl proxy is ready before running scale.py
Comments requested
How do you want the scaling script be run? Some options:

Event driven - run as a pod and receive HTTP requests from cull, hub, etc
Running on provisioner - with cron or add python script to run again

How to set the parameters? Including min utilization, max utilization, etc
Is it safe to kill a node running cull on it? General proposals for other critical service to be protected?
What tests do you want to run with it? We have run some tests but far from comprehensive.

Awesome! I'll take a more detailed look tomorrow :)
Early feedback:

We should use https://github.com/kubernetes-incubator/client-python to talk to the Kubernetes API, requests + json directly. Kubespawner should also be ported to use it eventually.
Have you considered using https://cloud.google.com/compute/docs/tutorials/python-guide for talking to the google cloud API, rather than calling the gcloud command line tool? I think that'll be much nicer in the long term...
How do you think this could be extended in the future to other providers (Azure, etc) easily? Using classes rather than just functions might be a great fit here!
Is there a reason we can't just run this script inside a kubernetes cluster? Esp. with (1) and (2), this would make authentication easier. We could use a https://kubernetes.io/docs/user-guide/cron-jobs/ even?
Parameters should ideally be set as environment variables directly. https://12factor.net/ (specifically https://12factor.net/config) has more info. If we do (4) we can use ConfigMaps to pass config into the script via environment variables.
I think cull and statsd are ok to be killed, hub and proxy aren't.

This is otherwise awesome, thank you for getting a move on this!
If it works fine we can also just start using it soon, and make changes to it slowly. I do want us to do it the 'right way' tho, since both us and others will be using this for a long time :)

Thank you Yuvi for you feedback!

I am not sure if the python client is a good idea, because it does not seem to be designed for async/coroutine requests. It does provide callback style async IO, but I am not sure if it could easily work with the coroutine style of tornado.

I definitely agree that google cloud API calls are much better than gcloud command line. We could migrate to that in the future. In addition to being lazy, we are also uncertain about how to deal with authentication, because it has not been decided how we are going to deploy the script.

It is my personal decision not to use OOP style class with gcloud_update.py. From my perspective classes should introduced when there are data to be associated with functions, which does not seem to be the case in the script so far. We might see the necessity after we start to use google cloud APIs, and it won't be difficult to switch.

Reasons for not run this version of the script inside a container:
4a. We need to replace kubectl proxy with recommended authentication settings when "Accessing the API from a Pod", involving service accounts. I prefer to do that after it is certain that we need such complexity. See https://kubernetes.io/docs/user-guide/accessing-the-cluster/#accessing-the-api-from-a-pod for details.
4b. Uncertain how to deal with google cloud authentication credentials
4c. Uncertain if I should run populate.bash just inside a container

Make sense. Honestly I might prefer command line arguments.

I will fix that soon, if you are sure that diagnostics data will not be lost when statsd is killed.

Additional point regarding populate.bash: @yuvipanda it will be great if you could incorporate a python version of that in the autoscaler gcloud_update.py.
Thanks.

Thanks for the response!

I'm confused about where async code is being used right now - I don't see any yields. requests, the current library being used, is also not async. I'm also not sure why this code needs to be async?
Sensible, and I agree. But, see point 3.
While I agree that encapsulation is a good line to draw for 'class or functions', I think it is the wrong one in this case. Specifically, we'll want this to work on Azure too before end of semester - and defining an interface that can be implemented by various 'providers' is a decent use case for a class in python. Doing this without classes involves a lot of 'ifs' scattered around the code, usually.
I really really think we should be using the kubernetes API for this - it does all of this automatically for us already. I do want this to run on the k8s cluster - one of the advantages of this year's deployment over last year's is that everything is managed and run in one way (kubernetes), and I'd like to very much keep it this way. If we have to run this elsewhere, then we either end up with infrastructure that isn't 100% reproducible, or we've to use ansible / puppet / some-other-thing in addition to kubernetes to provision and run this script reproducibly in some other way.

For populate.bash, it is something we should replace with an in-cluster replacement soon anyway - a DaemonSet that is pulling all images required on the cluster. I'll work on that this week so we won't have to do populate.bash anymore - you can ignore that from your autoscaler.
I just woke up, so I'll actually read through the code in a few hours :)

Thank you Yuvi!

We have not yet figured out whether the scale function should be called
in an event-driven way or run by cron (or similar) after every certain time
period, as I specified in the original pull request. If it needs to be
called in an event-driven way, I might introduce tornado or other async web
functions. Async won't be needed if eventually it is called by cron.

I agree with your point. I think that it is better to write 'interfaces'
after we understand enough about other providers including Azure, so that
we don't have to modify our interfaces frequently. We could do that later
in this semester.

I do personally think that such a service should run as a prod like cull
(and be event driven, honestly). We can try to figure out the
authentication parts and make it work as a pod in the near future.

Thank you we will take the populate.bash out. :)
On Mon, Feb 20, 2017 at 1:17 PM Yuvi Panda<EMAIL_ADDRESS>wrote:

Thanks for the response!

I'm confused about where async code is being used right now - I
don't see any yields. requests, the current library being used, is
also not async. I'm also not sure why this code needs to be async?
Sensible, and I agree. But, see point 3.
While I agree that encapsulation is a good line to draw for 'class
or functions', I think it is the wrong one in this case. Specifically,
we'll want this to work on Azure too before end of semester - and defining
an interface that can be implemented by various 'providers' is a decent use
case for a class in python. Doing this without classes involves a lot of
'ifs' scattered around the code, usually.
I really really think we should be using the kubernetes API for
this - it does all of this automatically for us already. I do want this to
run on the k8s cluster - one of the advantages of this year's deployment
over last year's is that everything is managed and run in one way
(kubernetes), and I'd like to very much keep it this way. If we have to run
this elsewhere, then we either end up with infrastructure that isn't 100%
reproducible, or we've to use ansible / puppet / some-other-thing in
addition to kubernetes to provision and run this script reproducibly in
some other way.

For populate.bash, it is something we should replace with an in-cluster
replacement soon anyway - a DaemonSet that is pulling all images required
on the cluster. I'll work on that this week so we won't have to do
populate.bash anymore - you can ignore that from your autoscaler.
I just woke up, so I'll actually read through the code in a few hours :)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/data-8/jupyterhub-k8s/pull/117#issuecomment-281183212,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFCJNr8TS99cEkV6vEUJoGavGFKaYwvPks5regLagaJpZM4MFy_g
.

--
Best regards,
Sincerely,
Tony Yang

I just realized - when scaling 'up', I think we should first look for nodes marked unschedulable and re-mark them as schedulable before adding more nodes. You could otherwise end up in a situation where you are using a lot more nodes than necessary simply because some are marked unschedulable.
So scale up logic should check if there are any nodes marked 'unschedulable' before creating new nodes, and if they are it should just mark them as schedulable instead...

@yuvipanda I believe that the current version will first try to mark nodes schedulable to satisfy the demand. It will only scale up nodes if it cannot satisfy the demand in such ways.

@yuvipanda I feel that I have added enough debug logs to track down specific action taken by the autoscaler and addressed other immediate concerns.

Awesome. I'll take another look later today :)
On Feb 20, 2017 4:21 PM, "Tony Yang"<EMAIL_ADDRESS>wrote:
@yuvipanda https://github.com/yuvipanda I feel that I have added enough
debug logs to track down specific action taken by the autoscaler and
addressed other immediate concerns.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/data-8/jupyterhub-k8s/pull/117#issuecomment-281211509,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB23sd_p7vxtbj-nHeXXbCGCFnvcU_Pks5rei37gaJpZM4MFy_g
.

@yuvipanda
I did not remove the one-line functions because Kubernetes Python client describes a node in a different way. The python client used a v1Node class, while parsing the JSON response from the REST API calls will create a dict. These one-line functions provide abstraction to avoid changing the logic code when switching between node.metadata.name and node["metadata"]["name"].

@tonyyanga but you're no longer using node["metadata"]["name"] anymore, right? so why keep them?

@yuvipanda
In the future we might decide to switch to native REST API calls. The abstraction provided by those one-line functions preserved the code out of utils.py when I switch between Kubernetes Python client's node.metadata.name and native JSON's node["metadata"]["name"].
Two possible cases exist:

Switch to native REST API calls for async io. Will be necessary if the autoscaler receive external calls.
When documentation of the python client seems too vague. Despite your support for the python client, I have to say that the its documentation is less clear than Kubernete's REST APIs.

A quick example for 2:
V1Node patch_node(name, body, pretty=pretty) is called when marking a node schedulable or unschedulable. It is documented in the link below:
https://github.com/kubernetes-incubator/client-python/blob/master/kubernetes/docs/CoreV1Api.md#patch_node
The documentation is incorrect. First, in the example code kubernetes.client.UnversionedPatch() simply causes error. Second, a valid body turns out to be a V1Node object, which can not be told from the documentation. Third, and probably the most important one, it provides no choice between application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json.
Please see https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#patch-operations for details about different PATCH strategies.

While I agree with the documentation issue, I don't think switching back to writing our own client implementation is something we would/should ever do. Consider the amount of authentication code you'd need to write :) And if for some reason we want this to be a web application, we can always use flask+uwsgi or something along those lines. In general, code shouldn't be async unless it needs to be, and when it does you need to change a ton of fundamental things anyway. Same with switching back to calling the API directly -
For the documentation issue, we should be good open source citizens and send them issues and patches :D
Keeping extra code around for possible future cases is a violation of the very useful YAGNI principle (https://martinfowler.com/bliki/Yagni.html). It's the same reason I'm ok with us not using classes or abstracting for multiple providers right now (since we do not need it yet). I do think we should have our code be as simple and small as possible, with just as much (not more and not less!) amount of indirection.

Haven't looked at the code again (sorry!). Should we do a test run of this on prod this week? I'll be happy if we manage to downsize it just once, even.

Sorry I have been busy too. I am free between 1PM and 4PM tomorrow and can show up at BIDS to do the test together (in case anything bad happens :) ). Let me know when and where will be good for you.

I've to be at a clinic all day tomorrow - how about thursday?
On Tue, Feb 21, 2017 at 10:35 PM, Tony Yang<EMAIL_ADDRESS>wrote:

Sorry I have been busy too. I am free between 1PM and 4PM tomorrow and can
show up at BIDS to do the test together (in case anything bad happens :) ).
Let me know when and where will be good for you.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/data-8/jupyterhub-k8s/pull/117#issuecomment-281582645,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB23kJCMkrSrPoLPcD6phF4VnCpEcqPks5re9cogaJpZM4MFy_g
.

--
Yuvi Panda T
http://yuvi.in/blog

How about Thursday afternoon at 1:30PM? Maybe we could chat on Slack.

I think we should also not use 'current-context' - which is what it does right now. 'dev', 'prod' or 'playground' must be explicitly set as a commandline parameter.
Doing things on the wrong cluster has already deleted everyone's homework once (I did it accidentally, thanksfully this was before classes started). So we should not rely on 'current context' at all anywhere.

Scaling up and down now successfully use the Google Cloud Python Client. Maybe you could look into some of the code for this @yuvipanda? :)

@yuvipanda
Addressed the most urgent concerns we discussed on Wednesday.
Now it uses google cloud python client and includes several safety measures for admin mistakes.
I think the pull request can be merged now, with future improvements tracked using issues.

The hub and proxy pods now have a label:
hub:
  labels:
    hub.jupyter.org/autoscaler-critical: "true"

proxy:
  labels:
    hub.jupyter.org/autoscaler-critical: "true"

This is set in supercommon.yaml in the config repo

Heya! I am back and working now again, so let's get this going sometime this week?

Sure. If you need me to show up in BIDS, how about Tuesday after 4PM?

@tonyyanga sure! let's do that!

@yuvipanda Cool. I will get to BIDS around 4:10PM. See you then!

I sent a calendar invite, hopefully to the correct email :)
On Mon, Apr 3, 2017 at 4:00 PM, Tony Yang<EMAIL_ADDRESS>wrote:

Sure. If you need me to show up in BIDS, how about Tuesday after 4PM?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/data-8/jupyterhub-k8s/pull/117#issuecomment-291302743,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAB23q5j4LGpnJO1sfTm46Wm0VS98a-Aks5rsXoFgaJpZM4MFy_g
.

--
Yuvi Panda T
http://yuvi.in/blog

Hey, Yuvi,
I had a few more bug fixes and updated the README to reflect our updated scaling logic. It so far works nicely on the prod cluster, without actually executing the commands.
I will try to actually run scale actions tonight or tomorrow morning to make sure it work as it claims, or you can run it if you know better about the lab schedule.
I will check tonight and see other steps we need to take, e.g. changing labels.
Thank you!

@yuvipanda
Here are two things that I think that could be done:

Not all students pods are labeled with hub.jupyter.org/autoscaler-critical: "true". This is at least the case with stat28 namespace on prod cluster.

Pods of our jupyter deployment (in other words, non-student pod) that can be killed need to be labeled in a different way, so that the autoscaler knows that the nodes hosting them can be condoned or shut down.

@tonyyanga for labeling, I can tomorrow:

label proxy and hub pods with hub.jupyter.org/autoscaler-type: "critical"
label user pods with hub.jupyter.org/autoscaler-type: "ephemeral"

That sounds like a better labeling scheme to me than just bools. Does that sound ok or would it be too complex to implement in the scaler?
Another alternative might be:

label proxy and hub pods with hub.jupyter.org/autoscaler-critical: "always"
label user pods with hub.jupyter.org/autoscaler-critical: "ephemeral"

I'll also make sure we do a deploy to stat28 so it has the labels.

@yuvipanda
For the current autoscaler, only key rather than value of the label is supported for labeling pods. Specifically, we should label pods like cull that can be arbitrarily killed with a different label key, such as hub.jupyter.org/autoscaler-omit: "true".
If you find it more straightforward to use the value of certain specified key, I can also make changes accordingly.

@yuvipanda
Also, I realized that the puller-pod will not be killed by cull. It will stay there with PodComppleted status. Either we could omit them or we need to release them somehow.
I am working on a bug with shutting down empty nodes.

@tonyyanga don't worry about puller-pod, I'm working on making those properly cleaned up by themselves.

We ran this together and everything seems ok \o/
Current plan is for @tonyyanga to run this manually 2 times a day for the next week, and then we can look at running this automatically.
Awesome work, @tonyyanga and @jiefugong :D


From server?

Hello
Thank you for this project.
Is possible send message to client from server?

Yes, you can! Please check demo: https://github.com/heminei/php-websocket/blob/master/demo/client.php

Great! Thank you.


VirtualScroll Prevents Smooth Scrolling on WebKit Based Browsers

Bug Report
Ionic Info
cli packages: (/home/brian/Websites/Music-Blobs/node_modules)
@ionic/cli-utils  : 1.19.2
ionic (Ionic CLI) : 3.20.0

global packages:
cordova (Cordova CLI) : 8.0.0
Gulp CLI              : CLI version 3.9.1 Local version 3.9.1

local packages:
@ionic/app-scripts : 3.1.9
Cordova Platforms  : android 7.1.0 browser 5.0.3
Ionic Framework    : ionic-angular 3.9.2

System:
Node : v9.11.2
npm  : 5.10.0
OS   : Linux 4.15

Environment Variables:
ANDROID_HOME : not set

Misc:
backend : pro

Describe the Bug
On some mobile browsers VirtualScroll prevents smooth scrolling. It works but it prevents the smooth scrolling that apps have. It works fine on Samsung Mobile and Firefox Mobile but not on Chrome Mobile or the Android WebView.
Steps to Reproduce
Steps to reproduce the behavior:

Go to https://musicblobs.com/home on Chrome for Mobile
Scroll through the list
See the laggy performance

Expected Behavior
Performance should be similar to Samsung Mobile Browser or Firefox Mobile Browser
Additional Context
Issue also occurs on Edge for Mobile. Couple questions... is there a way I can throttle the VirtualScroll from firing as often? Maybe this will fix the issue. Or is there a way I can use the Samsung Browser engine in my Android app instead of Android WebView. Scrolling seems to be fine on iOS... just webkit-based browsers seem to be affects (and Edge).

Hllo please i need you hellp please contact me  : https://www.facebook.com/stock.exchnge


Translations update from Hosted Weblate

Translations update from Hosted Weblate for Learn GDScript From Zero/Error explanations.
It also includes following components:

Learn GDScript From Zero/lesson-4-drawing-a-rectangle

Learn GDScript From Zero/lesson-12-using-variables

Learn GDScript From Zero/lesson-23-append-to-arrays

Learn GDScript From Zero/lesson-10-the-game-loop

Learn GDScript From Zero/lesson-13-conditions

Learn GDScript From Zero/lesson-15-modulo

Learn GDScript From Zero/lesson-21-strings

Learn GDScript From Zero/lesson-17-while-loops

Learn GDScript From Zero/lesson-2-your-first-error

Learn GDScript From Zero/lesson-18-for-loops

Learn GDScript From Zero/lesson-28-specifying-types

Learn GDScript From Zero/lesson-22-functions-return-values

Learn GDScript From Zero/application

Learn GDScript From Zero/lesson-5-your-first-function

Learn GDScript From Zero/classref_database

Learn GDScript From Zero/lesson-20-looping-over-arrays

Learn GDScript From Zero/lesson-26-looping-over-dictionaries

Learn GDScript From Zero/lesson-7-member-variables

Learn GDScript From Zero/lesson-8-defining-variables

Learn GDScript From Zero/glossary_database

Learn GDScript From Zero/lesson-27-value-types

Learn GDScript From Zero/lesson-6-multiple-function-parameters

Learn GDScript From Zero/lesson-9-adding-and-subtracting

Learn GDScript From Zero/lesson-11-time-delta

Learn GDScript From Zero/lesson-14-multiplying

Learn GDScript From Zero/lesson-3-standing-on-shoulders-of-giants

Learn GDScript From Zero/lesson-1-what-code-is-like

Learn GDScript From Zero/lesson-16-2d-vectors

Learn GDScript From Zero/lesson-24-access-array-indices

Learn GDScript From Zero/lesson-25-creating-dictionaries

Learn GDScript From Zero/lesson-19-creating-arrays

Current translation status:

Merged manually


Share amplify back-end between multiple web apps!

I have one amplify project that contains back-end plus a react.js front-end.
I want to have the second amplify project with react.js for front-end, however, share the back-end from the other amplify app with this one.
Although I shared the back-end and my second app works in the local environment, when I push it in the main branch to deploy it in the amplify it would fail to build.
my amplify.yml in the second app:
version: 1
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Since it does not have any entry for backend like my first app, it fails in the step for fron-end build and it says:

2021-06-17T08:51:48.575Z [INFO]: Creating an optimized production build...
2021-06-17T08:51:49.382Z [INFO]: Failed to compile.
2021-06-17T08:51:49.383Z [INFO]: ./src/index.js
Cannot find file './aws-exports' in './src'.

Please guide my through sharing an amplify back-end with 2 web apps.
Most of the discussions in the internet are about sharing it with mobile applications like these:
https://docs.amplify.aws/cli/teams/multi-frontend
https://egghead.io/lessons/javascript-sharing-an-aws-amplify-back-end-project-across-multiple-clients

Hey @mjza :wave: how are you currently deploying the second application? Since the exports file is not committed to git it will need to be generated by running amplify pull --appId <appid> --envName <env-name>

Hey @josefaidt Yes I pulled with the command that you mentioned. Please notice that the back-end does not exist on my amplify app B, it is on amplify app A. On app A it works and compiled, however on app B I only need to use it and I don't need it build the back-end.
If you have a tutorial for such case, it would be so useful.
For example in my scenario I have one client App (A) and one dashboard App (B).
Both front-ends are react.js, and both apps must use the same DB.

@mjza when going through the steps of that command it should prompt the following:
> amplify pull --appId <appId> --envName dev
Opening link: https://us-east-1.admin.amplifyapp.com/admin/<appId>/dev/verify/
✔ Successfully received Amplify Admin tokens.
Amplify AppID found: <appId>. Amplify App name is: <appName>
Backend environment dev found in Amplify Console app: <appName>
? Choose your default editor: Visual Studio Code
? Choose the type of app that you're building javascript
Please tell us about your project
? What javascript framework are you using none
? Source Directory Path:  src
? Distribution Directory Path: dist
? Build Command:  npm run-script build
? Start Command: npm run-script start
? Do you plan on modifying this backend? No

When we choose "No" for the last question Do you plan on modifying this backend it should generate the exports file in the source directory path.

I will test it an let you know.

When I select to not modify the back-end I cannot run the codegen!

mahdijaberzadehansari@Mac-mini-von-Mahdi cimplycitydashboard % amplify pull --appId xyz --envName staging
Opening link: https://us-east-1.admin.amplifyapp.com/admin/xyz/staging/verify/
✔ Successfully received Amplify Admin tokens.
Amplify AppID found: xyz. Amplify App name is: cimplycitywebapp
Backend environment staging found in Amplify Console app: cimplycitywebapp
? Choose your default editor: Visual Studio Code
? Choose the type of app that you're building javascript
Please tell us about your project
? What javascript framework are you using react
? Source Directory Path:  src
? Distribution Directory Path: build
? Build Command:  npm run-script build
? Start Command: npm run-script start
? Do you plan on modifying this backend? No
Added backend environment config object to your project.
Run 'amplify pull' to sync upstream changes.
mahdijaberzadehansari@Mac-mini-von-Mahdi cimplycitydashboard % amplify codegen
Please download the schema.graphql or schema.json and place in /Users/mahdijaberzadehansari/Git/cimplycitydashboard before adding codegen when not in an amplify project

Do I really need to copy and paste this file each time from project A to project B?

The above configuration only makes a .graphqlconfig.yml in the root of my second project.
Then I had to:

Copy schema.graphql file inside the root folder of the second App by hand!
Copy the built version of  schema.graphql from build folder in the first app amplify/backend/api/cimplycitywebapp/build/ to exactly same folder in the second app.

Making the folders in the second app, and copying the both schema.graphql files has been done by hand.
It means every time there would be an update on the graphql I have to do these steps again and again.
Isn't it annoying?

Another problem is the type of the generated files. It generates *.graphql instead of *.js
Here is my yml:
projects:
  cimplycitywebapp:
    schemaPath: amplify/backend/api/cimplycitywebapp/build/schema.graphql
    includes:
      - src/graphql/**/*.js
    excludes:
      - ./amplify/**
    extensions:
      amplify:
        codeGenTarget: javascript
        generatedFileName: ''
        docsFilePath: src/graphql
        region: us-east-1
        apiId: null
        maxDepth: 0
extensions:
  amplify:
    version: 3

I see here it has been mentioned codeGenTarget: javascript, however, it generates *.graphql files.
I even tried to copy and paste the graphql.json in both places. But it did not make any changes!

Could be related to https://github.com/aws-amplify/amplify-cli/issues/247

I solved the second issue. I removed the yaml file and used amplify codegen add to configure it from beginning, it solved the issue:

mahdijaberzadehansari@Mac-mini-von-Mahdi cimplycitydashboard % amplify codegen add
? Choose the type of app that you're building javascript
? What javascript framework are you using react
? Choose the code generation language target javascript
? Enter the file name pattern of graphql queries, mutations and subscriptions src/graphql/**/*.js
? Do you want to generate/update all possible GraphQL operations - queries, mutations and subscriptions Yes
? Enter maximum statement depth [increase from default if your schema is deeply nested] 5
✔ Generated GraphQL operations successfully and saved at src/graphql
mahdijaberzadehansari@Mac-mini-von-Mahdi cimplycitydashboard % amplify codegen
✔ Generated GraphQL operations successfully and saved at src/graphql

Anyway, even by applying the new configuration the same error can be seen still.

2021-06-21T09:53:28.808Z [INFO]: Creating an optimized production build...
2021-06-21T09:53:29.455Z [INFO]: Failed to compile.
2021-06-21T09:53:29.456Z [INFO]: ./src/index.js
Cannot find file './aws-exports' in './src'.

However, in my local I have this file in src folder.
The question is, do I need to change the build settings in the amplify?

I have figured it out.
I needed to carry out the following 2 steps:

Update the build setting as following:

version: 1
backend:
  phases:
    build:
      commands:
        - '# Execute Amplify CLI with the helper script'
        - amplifyPush --simple
frontend:
  phases:
    preBuild:
      commands:
        - npm ci
    build:
      commands:
        - npm run build
  artifacts:
    baseDirectory: build
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Update the role in the general settings to be able to perform the back-end build.

To sum up, the only question that still I have is, how can I skip the copying the schema.json by hand?

@mjza pulling the introspection file can be automated through the aws CLI with
aws appsync get-introspection-schema --api-id <appsync-api-id> --format JSON schema.json

Though unfortunately this is not currently supported with the Amplify CLI and will require manual copy for codegen.

More details how to fetch schema is here https://github.com/aws-amplify/amplify-cli/issues/5445#issuecomment-832699244
If you use Datastore you don't need to generate types and queries (amplify codegen). Generating models is enough for this case. If you feel like using fetching data without Datastore, use fetching schema with aws cli. There's no point to do both.

@mjza pulling the introspection file can be automated through the aws CLI with
aws appsync get-introspection-schema --api-id <appsync-api-id> --format JSON schema.json

Though unfortunately this is not currently supported with the Amplify CLI and will require manual copy for codegen.

When I tried your command I confronted the following error:

An error occurred (NotFoundException) when calling the GetIntrospectionSchema operation: GraphQL API dl91s1m9oixyz not found.

Closing as question has been answered and in favor of tracking codegen enhancement issue noted above.

@josefaidt I faced a new problem regarding this setting!
In the local version the Auth works perfect. However, the deployed version shows the following error:

[ERROR] 00:23.961 AuthError -
Error: Amplify has not been configured correctly.
The configuration object is missing required auth properties.
This error is typically caused by one of the following scenarios:
        1. Did you run `amplify push` after adding auth via `amplify add auth`?
            See https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup for more information

        2. This could also be caused by multiple conflicting versions of amplify packages, see (https://docs.amplify.aws/lib/troubleshooting/upgrading/q/platform/js) for help upgrading Amplify packages.

It seems I found the source of problem!
Here is my git ignore.
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# production
/build

# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

#amplify
amplify/\#current-cloud-backend
amplify/.config/local-*
amplify/logs
amplify/mock-data
amplify/backend/amplify-meta.json
amplify/backend/awscloudformation
amplify/backend/.temp
build/
dist/
node_modules/
aws-exports.js
awsconfiguration.json
amplifyconfiguration.json
amplifyconfiguration.dart
amplify-build-config.json
amplify-gradle-config.json
amplifytools.xcconfig
.secret-*

As you can see aws-exports.js is ignored.

                                 You are in 'detached HEAD' state. You can look around, make experimental
                                 changes and commit them, and you can discard any commits you make in this
                                 state without impacting any branches by switching back to a branch.
                                 If you want to create a new branch to retain commits you create, you may
                                 do so (now or later) by using -c with the switch command. Example:
                                 git switch -c <new-branch-name>
                                 Or undo this operation with:
                                 git switch -
                                 Turn off this advice by setting config variable advice.detachedHead to false
                                 HEAD is now at ae17b2e downgraded one package
2021-06-28T10:28:49.387Z [INFO]: Successfully cleaned up Git credentials
2021-06-28T10:28:49.387Z [INFO]: # Checking for Git submodules at: /codebuild/output/src504640973/src/cimplycitydashboard/.gitmodules
2021-06-28T10:28:49.394Z [INFO]: # Retrieved environment cache
2021-06-28T10:28:49.459Z [INFO]: # Ensuring NPM package '@aws-amplify/cli' is version: 'latest'
2021-06-28T10:28:54.674Z [INFO]: # Patching NPM package '@aws-amplify/cli' from 4.29.4 to 5.0.2...
2021-06-28T10:29:39.969Z [INFO]: # Done patching NPM package '@aws-amplify/cli'
2021-06-28T10:29:50.526Z [INFO]: ## Starting Backend Build
                                 # Starting phase: build
2021-06-28T10:29:59.840Z [INFO]: Amplify AppID found: d27000en0rokf8. Amplify App name is: cimplycitydashboard
2021-06-28T10:29:59.894Z [INFO]: Backend environment main found in Amplify Console app: cimplycitydashboard
2021-06-28T10:30:00.712Z [WARNING]: - Fetching updates to backend environment: main from the cloud.
2021-06-28T10:30:00.907Z [WARNING]: ✔ Successfully pulled backend environment main from the cloud.
2021-06-28T10:30:00.908Z [INFO]:
2021-06-28T10:30:03.736Z [INFO]: Note: It is recommended to run this command from the root of your app directory
2021-06-28T10:30:08.417Z [WARNING]: - Initializing your environment: main
2021-06-28T10:30:08.652Z [WARNING]: ✔ Initialized provider successfully.
2021-06-28T10:30:08.925Z [WARNING]: - Updating resources in the cloud. This may take a few minutes...
2021-06-28T10:30:09.930Z [INFO]: Initialized your environment successfully.
2021-06-28T10:30:09.931Z [INFO]: Your project has been successfully initialized and connected to the cloud!
                                 Some next steps:
                                 "amplify status" will show you what you've added already and if it's locally configured or deployed
                                 "amplify add <category>" will allow you to add features like user login or a backend API
                                 "amplify push" will build all your local backend resources and provision it in the cloud
                                 "amplify console" to open the Amplify Console and view your project status
                                 "amplify publish" will build all your local backend and frontend resources (if you have hosting category added) and provision it in the cloud
                                 Pro tip:
                                 Try "amplify add api" to create a backend API and then "amplify publish" to deploy everything
2021-06-28T10:30:12.212Z [INFO]: # Completed phase: build
                                 ## Completed Backend Build
2021-06-28T10:30:12.214Z [INFO]: ## Starting Frontend Build
                                 # Starting phase: preBuild
                                 # Executing command: npm ci
2021-06-28T10:30:22.853Z [INFO]: ><EMAIL_ADDRESS>postinstall /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/babel-runtime/node_modules/core-js
                                 > node -e "try{require('./postinstall')}catch(e){}"
2021-06-28T10:30:22.916Z [INFO]: ><EMAIL_ADDRESS>postinstall /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/ejs
                                 > node ./postinstall.js
2021-06-28T10:30:22.951Z [INFO]: Thank you for installing EJS: built with the Jake JavaScript build tool (https://jakejs.com/)
2021-06-28T10:30:23.116Z [INFO]: ><EMAIL_ADDRESS>install /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/webpack-dev-server/node_modules/fsevents
                                 > node install.js
2021-06-28T10:30:23.152Z [INFO]:
2021-06-28T10:30:23.152Z [INFO]: Skipping 'fsevents' build as platform linux is not supported
2021-06-28T10:30:23.182Z [INFO]: ><EMAIL_ADDRESS>install /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/watchpack-chokidar2/node_modules/fsevents
                                 > node install.js
2021-06-28T10:30:23.217Z [INFO]:
2021-06-28T10:30:23.218Z [INFO]: Skipping 'fsevents' build as platform linux is not supported
2021-06-28T10:30:23.371Z [INFO]: ><EMAIL_ADDRESS>postinstall /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/core-js
                                 > node -e "try{require('./postinstall')}catch(e){}"
2021-06-28T10:30:23.617Z [INFO]: ><EMAIL_ADDRESS>postinstall /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/core-js-pure
                                 > node -e "try{require('./postinstall')}catch(e){}"
2021-06-28T10:30:23.767Z [INFO]: ><EMAIL_ADDRESS>install /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/node-sass
                                 > node scripts/install.js
2021-06-28T10:30:24.820Z [INFO]: Downloading binary from https://github.com/sass/node-sass/releases/download/v6.0.1/linux-x64-72_binding.node
2021-06-28T10:30:24.909Z [INFO]: Download complete
2021-06-28T10:30:24.912Z [INFO]: Binary saved to /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/node-sass/vendor/linux-x64-72/binding.node
2021-06-28T10:30:24.946Z [INFO]: Caching binary to /root/.npm/_cacache/node-sass/6.0.1/linux-x64-72_binding.node
2021-06-28T10:30:24.966Z [INFO]: ><EMAIL_ADDRESS>postinstall /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/node-sass
                                 > node scripts/build.js
2021-06-28T10:30:25.093Z [INFO]: Binary found at /codebuild/output/src504640973/src/cimplycitydashboard/node_modules/node-sass/vendor/linux-x64-72/binding.node
2021-06-28T10:30:25.142Z [INFO]: Testing binary
2021-06-28T10:30:25.196Z [INFO]: Binary is fine
2021-06-28T10:30:25.264Z [INFO]: added 2133 packages in 12.752s
2021-06-28T10:30:25.277Z [INFO]: # Completed phase: preBuild
                                 # Starting phase: build
                                 # Executing command: npm run build
2021-06-28T10:30:25.430Z [INFO]: ><EMAIL_ADDRESS>build /codebuild/output/src504640973/src/cimplycitydashboard
                                 > react-scripts build
2021-06-28T10:30:26.406Z [INFO]: Creating an optimized production build...

Also, I have to add this point that when I build the project in my local it generates the built version with nor any error:
$ npm run build

><EMAIL_ADDRESS>build
> react-scripts build

Creating an optimized production build...
Compiled successfully.

File sizes after gzip:

  405.27 KB  build/static/js/4.6b8bb695.chunk.js
  131.65 KB  build/static/js/6.b19525db.chunk.js
  48.04 KB   build/static/js/main.9c742a0d.chunk.js
  46.2 KB    build/static/js/0.f74a5608.chunk.js
  29.81 KB   build/static/js/5.3061671d.chunk.js
  13.01 KB   build/static/js/7.1bf57982.chunk.js
  8.56 KB    build/static/js/1.af2863ef.chunk.js
  5.78 KB    build/static/css/main.58151f49.chunk.css
  4.49 KB    build/static/css/6.5b01edc5.chunk.css
  2.13 KB    build/static/css/5.d13a65b7.chunk.css
  1.75 KB    build/static/js/8.73d13c59.chunk.js
  1.58 KB    build/static/js/runtime-main.2557ac66.js
  1.48 KB    build/static/css/7.6344a433.chunk.css
  362 B      build/static/css/0.48e9480f.chunk.css

The project was built assuming it is hosted at /.
You can control this with the homepage field in your package.json.

The build folder is ready to be deployed.
You may serve it with a static server:

  serve -s build

Find out more about deployment here:

  https://cra.link/deployment

ignore the recent comments, I deleted them. It was a bug in React not AWS.


TypeError: Cannot read properties of undefined (reading 'callHandler')

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
on flutter web I am facing this issue

Highcharts warning #15: www.highcharts.com/errors/15/
null
null
null
null
TypeError: Cannot read properties of undefined (reading 'callHandler')
data:... 96:24                                      selection
https://code.highcharts.com/highcharts.js 9:2533
https://code.highcharts.com/highcharts.js 9:2511    j
https://code.highcharts.com/highcharts.js 9:219252  transform
https://code.highcharts.com/highcharts.js 9:136902  drop
https://code.highcharts.com/highcharts.js 9:141988  onDocumentMouseUp
Expected Behavior
Due to this, I am unable to handle zoom feature of highcharts.
Steps with code example to reproduce
_controller?.addJavaScriptHandler(
handlerName: 'handlerFooWithArgs',
callback: (args) {
print('args: $args');
if (widget.selectedArguments != null) {
widget.selectedArguments!(args);
}
                    // it will print: [1, true, [bar, 5], {foo: baz}, {bar: bar_value, baz: baz_value}]
                  });
            },

Stacktrace/Logs
[_completeWithValue]
../dart-sdk/lib/async/future_impl.dart 736:7
callback
../dart-sdk/lib/async/schedule_microtask.dart 40:11
_microtaskLoop
../dart-sdk/lib/async/schedule_microtask.dart 49:5
_startMicrotaskLoop
../dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 181:7

Highcharts warning #15: www.highcharts.com/errors/15/
null
null
null
null
TypeError: Cannot read properties of undefined (reading 'callHandler')
data:... 96:24                                      selection
https://code.highcharts.com/highcharts.js 9:2533
https://code.highcharts.com/highcharts.js 9:2511    j
https://code.highcharts.com/highcharts.js 9:219252  transform
https://code.highcharts.com/highcharts.js 9:136902  drop
https://code.highcharts.com/highcharts.js 9:141988  onDocumentMouseUp
Flutter version
Flutter 3.24.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision 2663184aa7 (2 months ago) • 2024-09-11 16:27:48 -0500 Engine • revision 36335019a8 Tools • Dart 3.5.3 • DevTools 2.37.3
Operating System, Device-specific and/or Tool
mac os
Plugin version
flutter_inappwebview: ^6.1.5
Additional information
No response
Self grab

[ ] I'm ready to work on this issue!

Please, read the documentation before posting an issue. Currently, web platform doesn’t support JavaScript handlers.
With the next plugin version 6.2.0, it should be available, but, as always on web platform, it will require same origin


chore: add ssl cert info script

Coverage remained the same at 100.0% when pulling f3a65a04202f6406abed5752a975e79bf279b296 on chore/scripts into 3f558661a1a73e34f5787e788fed0c7405cf36fc on master.


Cannot print like count of media

recent_media, returnedURL = api.tag_recent_media(tag_name="ferrari")
for media in recent_media:
print type(media.likes)
The above code says that media.likes is a list. Meanwhile, there should be 2 objects, "count" and "data". The count is a number of likes, like 146. The data contains the names of the first 4 likers. However, this does not have the option to get the count, just the names.

@macdonjo
if you do
print(media.like_count)

you should get the number of likes

Is there a reason why I can only ever access the first 4 likers?
recent_media, next_ = api.user_recent_media()
recent_media[0].likes
always gives me a list with 4 users, never more

@edz504 It's not documented well, but I think that's the expected behavior. To get the full list of likers, you have to make a separate call to media_likes:
recent_media, next_ = api.user_recent_media()
media = recent_media[0]
likes = api.media_likes(media.id)
print(likes)

That's what I ended up doing, but it seems strange that you need to iterate
through and make a separate call to each object if the list is already
retrieved in the method.
On Thu, Mar 5, 2015, 1:59 PM David Tran<EMAIL_ADDRESS>wrote:

@edz504 https://github.com/edz504 It's not documented well, but I think
that's the expected behavior. To get the full list of likers, you have to
make a separate call to media_likes:
recent_media, next_ = api.user_recent_media()
media = recent_media[0]
likes = api.media_likes(media.id)print(likes)
—
Reply to this email directly or view it on GitHub
https://github.com/Instagram/python-instagram/issues/121#issuecomment-77426808
.

Thank you for reporting this issue and appreciate your patience. We've  notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed.


Feature suggestion: Regex replace for text label tags

I think it would be a nice feature to be able to perform a regex replacement on text label tags.
For example, it's a bit annoying when the song title is something like "Song (feat. Artist with long name)". It would be nice if I could do a regex replace on the song tag, perhaps like {/\(feat.+//song}.
Another use case is truncating titles to a given length, e.g. {/^(.{50}).+/$1/song}.
One more use case is if I want to replace an artist's name with their initials: {/(\S)\S*\s?/$1. /artist} (only works if the regex global flag is enabled).

Sounds like a cool idea. I'll play around with it when I get do a pass over text labels.


chore: add release notify action

Platforms affected
Motivation and Context
We want to test a new action that closes issues that are just asking for a new release and reduce noise. Let's start with this plugin.
Description

This PR adds a new Github action built by me to add a comment and closes the issue if it looks like the issue is just created to ask for a release.
Testing

Checklist

[ ] I've run the tests to see all new and existing tests pass
[ ] I added automated test coverage as appropriate for this change
[x] Commit is prefixed with (platform) if this change only applies to one platform (e.g. (android))
[ ] If this Pull Request resolves an issue, I linked to the issue in the text above (and used the correct keyword to close issues using keywords)
[ ] I've updated the documentation if necessary

Some discussion here: https://github.com/NiklasMerz/release-notify/issues/4

👍