python3Packages.icontract: init at 2.6.1

Description of changes
Add icontract a design-by-contract library to python.
Also includes dpcontracts, which is needed for icontract.
Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 173140 run on x86_64-linux 1

4 packages built:

python310Packages.dpcontracts
python310Packages.icontract
python39Packages.dpcontracts
python39Packages.icontract

Please squash your changes into the appropriate commit.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/874


Missing @JSName annotation warning after overriding a @ScalaJSDefined method

There should be at least an information that @JSName annotation has to be reapplied after overriding a method from a @ScalaJSDefined class. Best would be if the annotation is carried over, because I think it's a common pattern in @ScalaJSDefined classes to rename the scala method name from a facade to provide a custom method with the actual method name and call the renamed one.
@ScalaJSDefined
abstract class A extends js.Object {
  @JSName("_test")
  def test(): Int
  @JSName("test")
  def _test(): String = test().toString
}
val a = new A {
  override def test() = 1
}

This leads to a Conflicting properties and methods for ... Error because the @JSName annotation is not carried over.

:+1:


Added missing newline in error message.

Those other prints will also need new lines too on lines 2847 and 2849.


DynamoDB Mock does not handle UpdateExpression implementing an Atomic Counter correctly

Amazon's DynamoDB can do an atomic increment of a counter attribute using an UpdateExpression. See https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithItems.html#WorkingWithItems.AtomicCounters
Test Case to Reproduce
This tries to run the same test using real boto and a moto mock. Requires valid AWS credentials for the test against the real boto.
import unittest
import boto3
import time

from moto import mock_dynamodb2

dynamodb = boto3.resource('dynamodb')

class MotoBugTestCase(unittest.TestCase):
    def setUp(self):
        self.table_name = 'test_moto_bug_ppeach'

        self.primary_key = 'a_key'

    def setup_table(self):
        print('Creating the table: {}'.format(self.table_name))
        table = dynamodb.create_table(
            TableName=self.table_name,
            KeySchema=[{
                'AttributeName': 'primary_key',
                'KeyType': 'HASH'
            }],
            AttributeDefinitions=[{
                'AttributeName': 'primary_key',
                'AttributeType': 'S'
            }],
            ProvisionedThroughput={
                'ReadCapacityUnits': 1,
                'WriteCapacityUnits': 1
            })
        return table

    def teardown_table(self, table):
        print('Deleting the table: {}'.format(self.table_name))
        table.delete()

    def increment_item_and_verify(self):
        table = self.setup_table()
        time.sleep(10)
        item = {'primary_key': self.primary_key, 'num_counter': 0}
        try:
            print('Create item {}'.format(self.primary_key))
            table.put_item(Item=item)

            incr = 2
            print('Incrementing item {} by {}'.format(self.primary_key, incr))
            table.update_item(
                Key={'primary_key': self.primary_key},
                UpdateExpression='SET num_counter = num_counter + :incr',
                ExpressionAttributeValues={':incr': incr})

            print('Fetching item {}'.format(self.primary_key))
            response = table.get_item(Key={'primary_key': self.primary_key})
            print('For item {} got {}'.format(self.primary_key, response['Item']))
            self.assertEqual(2, response['Item']['num_counter'])
        except:
            import traceback
            print(traceback.format_exc())
            raise
        finally:
            self.teardown_table(table)

    def test_real_scenario(self):
        self.increment_item_and_verify()

    @mock_dynamodb2
    def test_moto_scenario(self):
        self.increment_item_and_verify()

Expected Result
Both boto and moto should act the same and both tests should pass.
Actual Result
The moto test fails because the num_counter attribute is set to the string 'num_counter+:incr' instead of being parsed into an increment operation.
$ pipenv run python -m unittest discover -v -b
test_moto_scenario (test.test_moto_bug.MotoBugTestCase) ... FAIL

Stdout:
Creating the table: test_moto_bug_ppeach
Create item a_key
Incrementing item a_key by 2
Fetching item a_key
For item a_key got {u'num_counter': u'num_counter+:incr', u'primary_key': u'a_key'}
Traceback (most recent call last):
  File "/home/ppeach/git_repos/onep/onep-event/test/test_moto_bug.py", line 56, in increment_item_and_verify
    self.assertEqual(2, response['Item']['num_counter'])
  File "/usr/lib/python2.7/unittest/case.py", line 513, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/usr/lib/python2.7/unittest/case.py", line 506, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 2 != u'num_counter+:incr'

Deleting the table: test_moto_bug_ppeach
test_real_scenario (test.test_moto_bug.MotoBugTestCase) ... ok

======================================================================
FAIL: test_moto_scenario (test.test_moto_bug.MotoBugTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/ppeach/.local/share/virtualenvs/onep-event-JWHCAMFK/local/lib/python2.7/site-packages/moto/core/models.py", line 71, in wrapper
    result = func(*args, **kwargs)
  File "/home/ppeach/git_repos/onep/onep-event/test/test_moto_bug.py", line 69, in test_moto_scenario
    self.increment_item_and_verify()
  File "/home/ppeach/git_repos/onep/onep-event/test/test_moto_bug.py", line 56, in increment_item_and_verify
    self.assertEqual(2, response['Item']['num_counter'])
AssertionError: 2 != u'num_counter+:incr'

Stdout:
Creating the table: test_moto_bug_ppeach
Create item a_key
Incrementing item a_key by 2
Fetching item a_key
For item a_key got {u'num_counter': u'num_counter+:incr', u'primary_key': u'a_key'}
Traceback (most recent call last):
  File "/home/ppeach/git_repos/onep/onep-event/test/test_moto_bug.py", line 56, in increment_item_and_verify
    self.assertEqual(2, response['Item']['num_counter'])
  File "/usr/lib/python2.7/unittest/case.py", line 513, in assertEqual
    assertion_func(first, second, msg=msg)
  File "/usr/lib/python2.7/unittest/case.py", line 506, in _baseAssertEqual
    raise self.failureException(msg)
AssertionError: 2 != u'num_counter+:incr'

Deleting the table: test_moto_bug_ppeach

----------------------------------------------------------------------
Ran 2 tests in 20.340s

FAILED (failures=1)

Environment
moto 1.3.4
boto3 1.7.75
botocore 1.10.75
$ pipenv graph
behave==1.2.6
  - enum34 [required: Any, installed: 1.1.6]
  - parse [required: >=1.8.2, installed: 1.8.4]
  - parse-type [required: >=0.4.2, installed: 0.4.2]
    - enum34 [required: Any, installed: 1.1.6]
    - parse [required: >=1.8, installed: 1.8.4]
    - six [required: >=1.11, installed: 1.11.0]
  - six [required: >=1.11, installed: 1.11.0]
  - traceback2 [required: Any, installed: 1.4.0]
    - linecache2 [required: Any, installed: 1.0.0]
confluence-publisher==1.2.1
  - argparse [required: >=1.2.1, installed: 1.1]
  - PyYAML [required: >=3.11, installed: 3.13]
  - requests [required: >=2.4.3, installed: 2.19.1]
    - certifi [required: >=2017.4.17, installed: 2018.8.13]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.8, installed: 2.7]
    - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
coverage==4.5.1
grequests==0.3.0
  - gevent [required: Any, installed: 1.3.5]
    - greenlet [required: >=0.4.13, installed: 0.4.14]
  - requests [required: Any, installed: 2.19.1]
    - certifi [required: >=2017.4.17, installed: 2018.8.13]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.8, installed: 2.7]
    - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
httpretty==0.9.4
  - six [required: Any, installed: 1.11.0]
jsonmerge==1.5.1
  - jsonschema [required: Any, installed: 2.6.0]
    - functools32 [required: Any, installed: 3.2.3.post2]
moto==1.3.4
  - aws-xray-sdk [required: >=0.93,<0.96, installed: 0.95]
    - jsonpickle [required: Any, installed: 0.9.6]
    - requests [required: Any, installed: 2.19.1]
      - certifi [required: >=2017.4.17, installed: 2018.8.13]
      - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
      - idna [required: >=2.5,<2.8, installed: 2.7]
      - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
    - wrapt [required: Any, installed: 1.10.11]
  - backports.tempfile [required: Any, installed: 1.0]
    - backports.weakref [required: Any, installed: 1.0.post1]
  - boto [required: >=2.36.0, installed: 2.49.0]
  - boto3 [required: >=1.6.16, installed: 1.7.75]
    - botocore [required: >=1.10.75,<1.11.0, installed: 1.10.75]
      - docutils [required: >=0.10, installed: 0.14]
      - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
      - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.3]
        - six [required: >=1.5, installed: 1.11.0]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
    - s3transfer [required: >=0.1.10,<0.2.0, installed: 0.1.13]
      - botocore [required: >=1.3.0,<2.0.0, installed: 1.10.75]
        - docutils [required: >=0.10, installed: 0.14]
        - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
        - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.3]
          - six [required: >=1.5, installed: 1.11.0]
      - futures [required: >=2.2.0,<4.0.0, installed: 3.2.0]
  - botocore [required: >=1.9.16, installed: 1.10.75]
    - docutils [required: >=0.10, installed: 0.14]
    - jmespath [required: >=0.7.1,<1.0.0, installed: 0.9.3]
    - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.3]
      - six [required: >=1.5, installed: 1.11.0]
  - cookies [required: Any, installed: 2.2.1]
  - cryptography [required: >=2.0.0, installed: 2.3]
    - asn1crypto [required: >=0.21.0, installed: 0.24.0]
    - cffi [required: >=1.7,!=1.11.3, installed: 1.11.5]
      - pycparser [required: Any, installed: 2.18]
    - enum34 [required: Any, installed: 1.1.6]
    - idna [required: >=2.1, installed: 2.7]
    - ipaddress [required: Any, installed: 1.0.22]
    - six [required: >=1.4.1, installed: 1.11.0]
  - docker [required: >=2.5.1, installed: 3.5.0]
    - backports.ssl-match-hostname [required: >=3.5, installed: <IP_ADDRESS>]
    - docker-pycreds [required: >=0.3.0, installed: 0.3.0]
      - six [required: >=1.4.0, installed: 1.11.0]
    - ipaddress [required: >=1.0.16, installed: 1.0.22]
    - requests [required: >=2.14.2,!=2.18.0, installed: 2.19.1]
      - certifi [required: >=2017.4.17, installed: 2018.8.13]
      - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
      - idna [required: >=2.5,<2.8, installed: 2.7]
      - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
    - six [required: >=1.4.0, installed: 1.11.0]
    - websocket-client [required: >=0.32.0, installed: 0.48.0]
      - six [required: Any, installed: 1.11.0]
  - Jinja2 [required: >=2.7.3, installed: 2.10]
    - MarkupSafe [required: >=0.23, installed: 1.0]
  - jsondiff [required: ==1.1.1, installed: 1.1.1]
  - mock [required: Any, installed: 2.0.0]
    - funcsigs [required: >=1, installed: 1.0.2]
    - pbr [required: >=0.11, installed: 4.2.0]
    - six [required: >=1.9, installed: 1.11.0]
  - pyaml [required: Any, installed: 17.12.1]
    - PyYAML [required: Any, installed: 3.13]
  - python-dateutil [required: >=2.1,<3.0.0, installed: 2.7.3]
    - six [required: >=1.5, installed: 1.11.0]
  - python-jose [required: <3.0.0, installed: 2.0.2]
    - ecdsa [required: <1.0, installed: 0.13]
    - future [required: <1.0, installed: 0.16.0]
    - pycryptodome [required: >=3.3.1,<4.0.0, installed: 3.6.5]
    - six [required: <2.0, installed: 1.11.0]
  - pytz [required: Any, installed: 2018.5]
  - requests [required: >=2.5, installed: 2.19.1]
    - certifi [required: >=2017.4.17, installed: 2018.8.13]
    - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
    - idna [required: >=2.5,<2.8, installed: 2.7]
    - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
  - responses [required: >=0.9.0, installed: 0.9.0]
    - cookies [required: Any, installed: 2.2.1]
    - mock [required: Any, installed: 2.0.0]
      - funcsigs [required: >=1, installed: 1.0.2]
      - pbr [required: >=0.11, installed: 4.2.0]
      - six [required: >=1.9, installed: 1.11.0]
    - requests [required: >=2.0, installed: 2.19.1]
      - certifi [required: >=2017.4.17, installed: 2018.8.13]
      - chardet [required: >=3.0.2,<3.1.0, installed: 3.0.4]
      - idna [required: >=2.5,<2.8, installed: 2.7]
      - urllib3 [required: >=1.21.1,<1.24, installed: 1.23]
    - six [required: Any, installed: 1.11.0]
  - six [required: >1.9, installed: 1.11.0]
  - werkzeug [required: Any, installed: 0.14.1]
  - xmltodict [required: Any, installed: 0.11.0]
ndg-httpsclient==0.5.1
  - pyasn1 [required: >=0.1.1, installed: 0.4.4]
  - PyOpenSSL [required: Any, installed: 18.0.0]
    - cryptography [required: >=2.2.1, installed: 2.3]
      - asn1crypto [required: >=0.21.0, installed: 0.24.0]
      - cffi [required: >=1.7,!=1.11.3, installed: 1.11.5]
        - pycparser [required: Any, installed: 2.18]
      - enum34 [required: Any, installed: 1.1.6]
      - idna [required: >=2.1, installed: 2.7]
      - ipaddress [required: Any, installed: 1.0.22]
      - six [required: >=1.4.1, installed: 1.11.0]
    - six [required: >=1.5.2, installed: 1.11.0]
pycodestyle==2.4.0
yapf==0.22.0

Thanks; setting as a feature request.

        UpdateExpression= 'SET id = id + :n',

results in a value of id+:n rather than an increment of the value in id.
It appears we can get away with using this instead
        UpdateExpression='ADD id :n',

I'm reluctant to use this, given the documentation explicitly says In general, we recommend using SET rather than ADD. (https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.ADD) and all of the atomic counter documentation uses SET, but it gets us passing tests for now I suppose.


Privacy Policy for the api

Please Can you add a Privacy Policy, Terms of Use for the api.
Also there is an error "Internal Server error" showing for country data previously,
Now it is showing the same error for the rest also.
Please can you look into it.
Thanks.

Okay. I will surely add those above-mentioned things.
I have fixed the above issue.


Render SVG thumbnails against transparency grid

Description of the new feature / enhancement
When SVG graphics are all-white, it is impossible to see what the graphic is from its thumbnail, as it is rendered against a white background. There should be an option to render SVG thumbnails against a transparency grid.
Scenario when this would be used?
SVG graphics are often pure-white only. A typical use case for SVG is for logos, which often have pure-white versions.
Supporting information
No response

Committed in #25397

I take it back - the PR only applies to the Preview Pane, but this is also needed for the thumbnail icons. @stefansjfw @Aaron-Junker

This isn't quite a dupe. This says something about a "transparency grid" which I presume means a checkered background. But that's not how transparency is handled for other image thumbnails.
Here is an example. I exported an SVG as a PNG file, and put them both on my desktop. They should look the same (other than the icon in the corner).

Note that my Desktop background is not a solid color, so giving me the option of a solid color will not work. It should be transparent.

@trkly is quite right, this issue should apply to any format that allows transparency. So, SVG and PNG both included.
I'm looking for the option to control how the transparency is rendered in the thumbnail.
The issue is that the thumbnail can become useless when the graphic is the same colour as the user interface, against transparency. For instance, a white graphic on transparent bg, against the white user interface window pane.
I'm looking for a setting like: "Render transparency in thumbnails as..."
This could offer options, or it could only offer one of the following options – they are in priority order (the first is the best solution):

Smart checkerboard (light grey and dark grey squares, where the shades are determined by averaging the colours in the graphic, extracting the luminance value of this, and offsetting in two directions from this luminance value)
Checkerboard (light grey and dark grey squares – always same shade)
Solid colour: choose

The solid colour option is not ideal as then the thumbnail does not really reveal that the graphic has a transparent bg. It also becomes useless again when the graphic itself matches that colour. This is why a checkerboard is a pretty standard way of indicating transparency.

You're not agreeing with me, though. What I want is actual transparency. I want it to match the PNG. I do not want a solid color background, and I do not want a checkerboard background.
If you want to have multiple options, that would be fine. But one of those options should be to depict transparency as actual transparency. I hate boxes around images.

@trlkly both of our (actually opposing) desires are served by this proposal, as the user would be able either to turn ON the grid effect or turn it OFF which should render as you want it i.e. as actual transparency

Idea for devs:
Use an rgbA color combined with one optional checker pattern.


Support for github inclusion of the latest version

I was wondering if there is any way to include the latest version of a github puppet-xxx library without needing to update the tag number each time a new version of a package is released?
If not, is there any plan to add this feature?  I don't have much experience of Ruby or Puppet to offer a pull require for this, I'm afraid.

@toby-griffiths have a look at the documentation for the librarian-puppet project, specifically the documentation for Puppetfile. You should be able to use the :ref option to specify a non-tagged rev.


Element flashes before animation starts running.

Before animation runs, content appears unstyled for a brief moment.
const onEnter = (element: Element, done: () => void) => {
   // At this point element shouldn't be visible but it is.
   element.animate({
      opacity: [0, 1],
    }, {
      duration: 100,
    }).finished.then(done)
}

Reproducible example some other person made:
https://codesandbox.io/s/cool-bogdan-j8b37?file=/package.json
One possible fix is to use 'onBeforeEnter' event but that only complicates things, especially with complex animations.
An actual fix would be to replace all 'setTimeout' uses with 'queueMicrotask', for example here:
https://github.com/ryansolid/solid-transition-group/blob/0f1d5253531246e51ea549adf8a002c7020ec5ad/src/Transition.ts#L63-L71
I have briefly tested it working locally with both native function and polyfill https://github.com/feross/queue-microtask

I see. I was trying to mimic the behavior of Vue Transition Group which seems to use setTimeout. I can see how this approach would be bulkier but honestly, I don't know all the use cases here so I've mostly been imitating. So for me to reconsider this I'd need to tread carefully. I am obviously interested where people have more experience and can explain why this behavior exists or when it is desirable. I am definitely interested in making this better but also not particularly versed in what that better looks like.
The way I see it the best path forward will be looking at the equivalent React and Vue examples and code to make some determinations. I might be missing some nuance here.

I have tried to implement the same thing in react(no experience with Vue sorry) and it doesn't have same issues.
React example: https://codesandbox.io/s/naughty-lichterman-lsmqs?file=/src/App.js
Solid example: https://codesandbox.io/s/patient-wood-6vu4e?file=/index.js
The difference in timing could be attributed to the way solid renders and schedules DOM, but that's just speculation on my part. Reading up on queueMicrotask in MDN, it guaranties for code to run in specific order, before any other tasks are scheduled, just like Mutation Observer callback would. Inside previous standard discussion about it I also found this quote

setTimeout and rAF can cause UI flicker (rendering partially rendered UI)

which is exactly what is happening here, I am still not quite sure exactly how scheduling works, but it did fix animation flickering for me, but looking into more complex and varied use cases is the right decision before changing things up, there might be other unexpected things that come up.
Also issue seems to happen far less in Firefox, with simple animations it works normally 80% of the time, the more complex animation the more often it flickers. In Chromium flickering happens every time, I haven't tested Safari.


Use minimal assert implementation

idea:

write a minimalist assert implementation, eg: function assert(condition: boolean, message?: string): void;
store in lodestar-utils
use everywhere we use lodestar-utils instead of the current assert library

The goal is to eventually get rid of NodeJS specific modules to be browser compatible?


Improve contact options in footer

Mario suggests adding a contact form, in particular in the footer, which now just lists a telephone number.

@wmvanderveen I can't remember, did we decide in the end to link the contact page link in the footer to the Dutch or the English contact page?

To the English contact page.

We don't have a link to the Humanities Cluster in the footer. My suggestion:
Powered by:
KNAW Humanities Cluster

Huygens Instituut
IISG
Meertens Instituut

prima suggestie, laten we dat doen.

Prima


Line 28: [Warning] Invalid file link:(~/concepts/bots/bot-conversations/bots-conv-proactive).
Line 28: [Warning] Invalid file link:(~/concepts/bots/bot-conversations/bots-conv-proactive#creating-a-channel-conversation).
Line 34: [Warning] Invalid file link:(~/concepts/bots/bot-conversations/bots-conversations#teams-channel-data).
Line 49: [Warning] Invalid file link:(~/concepts/bots/bots-notifications#team-member-or-bot-addition).
Line 51: [Warning] Invalid file link:(~/concepts/bots/bot-conversations/bots-conv-personal#starting-a-11-conversation).
Line 51: [Warning] Invalid file link:(~/concepts/bots/bots-context#fetching-the-team-roster).
Line 60: [Warning] Invalid file link:(~/resources/design/overview).
Line 116: [Warning] Invalid file link:(~/get-started/code#microsoft-teams-extensions-for-the-bot-builder-sdk).
Line 198: [Warning] Invalid file link:(~/concepts/bots/bots-context).

msteams-platform/concepts/bots/bot-conversations/bots-conv-proactive.md

Line 21: [Warning] Invalid file link:(~/concepts/bots/bots-notifications#team-member-or-bot-addition).
Line 21: [Warning] Invalid file link:(~/concepts/bots/bot-conversations/bots-conv-channel).
Line 21: [Warning] Invalid file link:(~/concepts/bots/bots-context#fetching-the-team-roster).

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


App crash at launch when setting matrix session to _MyUser object

Describe the bug
The app keeps crashing after launch, the crash points to
self->_myUser.mxSession = self; inside setStore method in MXSession.m file.
SDK Version: 0.22.5
To Reproduce
I don't know how it happened in our production app, But you can reproduce it by setting a breakpoint on mxSession.setStore() method, Then the app will keep crashing.
Expected behavior
The app shouldn't crash.
Smartphone (please complete the following information):

Device: iPhone X
OS: iPhone OS 15.3.1 (19D52)

Additional context

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Last Exception Backtrace:
0   CoreFoundation                	0x182aa6d3c __exceptionPreprocess + 216 (NSException.m:200)
1   libobjc.A.dylib               	0x199e206a8 objc_exception_throw + 56 (objc-exception.mm:565)
2   CoreFoundation                	0x182b76768 -[NSObject(NSObject) doesNotRecognizeSelector:] + 140 (NSObject.m:147)
3   CoreFoundation                	0x182a40f6c forwarding + 1440 (NSForwarding.m:3577)
4   CoreFoundation                	0x182a401dc _CF_forwarding_prep_0 + 92
5   MatrixSDK                     	0x10577495c 0x10558c000 + 2001244
6   libdispatch.dylib             	0x1827721a4 _dispatch_call_block_and_release + 24 (init.c:1517)
7   libdispatch.dylib             	0x1827731a8 _dispatch_client_callout + 16 (object.m:560)
8   libdispatch.dylib             	0x1827544b8 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 908 (inline_internal.h:2601)
9   CoreFoundation                	0x182a62888 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 12 (CFRunLoop.c:1795)
10  CoreFoundation                	0x182a20188 __CFRunLoopRun + 2528 (CFRunLoop.c:3144)
11  CoreFoundation                	0x182a32e1c CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
12  GraphicsServices              	0x1a2de59a0 GSEventRunModal + 160 (GSEvent.c:2200)
13  UIKitCore                     	0x185266b90 -[UIApplication _run] + 1080 (UIApplication.m:3493)
14  UIKitCore                     	0x184ffc16c UIApplicationMain + 332 (UIApplication.m:5047)
15  Ibraq                         	0x10245af8c 0x102264000 + 2060172
16  dyld                          	0x103a98250 start + 444 (dyldMain.cpp:879)

Thread 0 name:
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x00000001bcb5a9e8 __pthread_kill + 8
1   libsystem_pthread.dylib       	0x00000001dd063824 pthread_kill + 208 (pthread.c:1668)
2   libsystem_c.dylib             	0x000000018cfa7448 raise + 28 (raise.c:30)
3   FirebaseCrashlytics           	0x0000000103db8b14 FIRCLSSignalEnumerateHandledSignals + 16 (FIRCLSSignal.c:55)
4   FirebaseCrashlytics           	0x0000000103db8b14 FIRCLSSignalSafeInstallPreexistingHandlers + 228 (FIRCLSSignal.c:186)
5   FirebaseCrashlytics           	0x0000000103db88d8 FIRCLSSignalHandler + 560 (FIRCLSSignal.c:325)
6   libsystem_platform.dylib      	0x00000001dd048d48 _sigtramp + 52 (sigtramp.c:116)
7   libsystem_pthread.dylib       	0x00000001dd063824 pthread_kill + 208 (pthread.c:1668)
8   libsystem_c.dylib             	0x000000018cfa70b4 abort + 120 (abort.c:118)
9   libc++abi.dylib               	0x0000000199f15e1c abort_message + 128 (abort_message.cpp:78)
10  libc++abi.dylib               	0x0000000199f07bec demangling_terminate_handler() + 296 (cxa_default_handlers.cpp:71)
11  libobjc.A.dylib               	0x0000000199e26018 _objc_terminate() + 124 (objc-exception.mm:701)
12  Bugsnag                       	0x0000000103bb22a4 CPPExceptionTerminate() + 492 (BSG_KSCrashSentry_CPPException.mm:192)
13  FirebaseCrashlytics           	0x0000000103da3f18 FIRCLSTerminateHandler() + 340 (FIRCLSException.mm:335)
14  libc++abi.dylib               	0x0000000199f152cc std::__terminate(void (*)()) + 16 (cxa_handlers.cpp:59)
15  libc++abi.dylib               	0x0000000199f15274 std::terminate() + 60 (cxa_handlers.cpp:88)
16  libdispatch.dylib             	0x00000001827731bc _dispatch_client_callout + 36 (object.m:563)
17  libdispatch.dylib             	0x00000001827544b8 _dispatch_main_queue_callback_4CF$VARIANT$armv81 + 908 (inline_internal.h:2601)
18  CoreFoundation                	0x0000000182a62888 CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE + 12 (CFRunLoop.c:1795)
19  CoreFoundation                	0x0000000182a20188 __CFRunLoopRun + 2528 (CFRunLoop.c:3144)
20  CoreFoundation                	0x0000000182a32e1c CFRunLoopRunSpecific + 572 (CFRunLoop.c:3268)
21  GraphicsServices              	0x00000001a2de59a0 GSEventRunModal + 160 (GSEvent.c:2200)
22  UIKitCore                     	0x0000000185266b90 -[UIApplication _run] + 1080 (UIApplication.m:3493)
23  UIKitCore                     	0x0000000184ffc16c UIApplicationMain + 332 (UIApplication.m:5047)
24  Ibraq                         	0x000000010245af8c 0x102264000 + 2060172
25  dyld                          	0x0000000103a98250 start + 444 (dyldMain.cpp:879)

If I remember correctly, our production users had the same issue some time back and it happened very suddenly. You have to delete and install the app or somehow clear the matrix store and reauthenticate. I debugged it for a few hours and I couldn’t figure out the root cause. However, after updating the SDK (at that time we used 0.19.x something), it never happened again. Now we use 0.22.0. Matrix developers never respond here!:(

@mehrshadJalilmair Unfortunately this didn't fix the crash it still happens to users. Any other workaround you did to fix this issue?

@mehrshadJalilmair Unfortunately this didn't fix the crash it still happens to users. Any other workaround you did to fix this issue?

Downgrade to 0.22.0 and try again

@mehrshadJalilmair That's what I did before, I downgraded to V'0.22.0' but crashes happened to our QA testers.

@mehrshadJalilmair That's what I did before, I downgraded to V'0.22.0' but crashes happened to our QA testers.

Can you initialize your RestClient like this:
self.resetClient = MXRestClient(credentials: self.credentials!,                                         unrecognizedCertificateHandler: nil,                                         unauthenticatedHandler: { error, isSoftLogout, isRefreshTokenAuth, completion in                  // Your logic if synapse token expires         })
then test and let me know.

Will do, appreciate your help.

Will do, appreciate your help.

Could you resolve the issue?

No I couldn't, Nothing seemed to work.

@mehrshadJalilmair
This PR seems to fix the issue. Not tested yet waiting for the new release.
@stefanceriu Can you confirm? So I can close this issue.

Oh I wasn't aware about this issue but yes, it does seem very similar, feel free to close it. There's a new release coming out this week which should have the fix in place.


Add to readme what stores this has been deployed to

What platforms / stores has the cln-application been deployed to?  I heard its also on start9?  If there are others too we should update the readme with them.

AFAIK, Start9 and Umbrel are the two stores hosting cln-application till now.
We already have Umbrel badge and opened an issue #612 requesting Start9 to provide badge svgs to update their information.

I added a temporary badge for Start9 with commit af7d0401f6d436fda4240d1b02688d54b382292a. I will update it whenever its official version is available. Closing the ticket now.


[Feature Request]: Link should support a title prop

Description
For SEO and accessibility purposes, I would like my <Link> components to support a title prop that becomes the resulting <a>'s title attribute.
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate requests

Just checking in that we're looking into this.

Hello!
We have looked into that, but found no use-cases to support it. Closing this for now, but let us know if you have any use-cases or links to requirements saying you need to support this


Move site into /docs directory

GitHub supports building pages from the 'docs' directory of a master branch. I think we should consider putting the showcase site there so that we're not trying to do two separate version control projects in one repo.

Or, now that we have an org, into a separate repo so that we can have meyda.github.io.

Yep, this sounds good.
I'd really like to add all/most the features to the example at some point as well to really show off Meyda's capability, that's another issue though.

This is done, the site is on meyda.github.io served from the meyda/meyda.github.io repo. We can keep the gh-pages branch of this repo around if we want to store history, or someone can take on the project of moving git history from one repo to another.

can we close @hughrawlinson ?


ImportError: No module named conda.cli

Hey,
i have a really strange problem.
I have two projects where i use the same identical workflow:
...
  steps:
      - name: Checkout branch
        uses: actions/checkout@v3
      - uses: conda-incubator/setup-miniconda@v2
        with:
          miniconda-version: "latest"
          activate-environment: test
...

The problem is that in one project, it works fine, while in the other i have the following error:
 Traceback (most recent call last):
    File ".../condabin/conda", line 12, in <module>
      from conda.cli import main
  Warning: ImportError: No module named conda.cli

Do you have an idea what can be? I'm using self-hosted runner.
Thanks :-)

Do you have full workflows somebody could use to reproduce this behavior? Logs?

This is the complete workflow
name: Linting with Ruff

on:
  pull_request:
    branches:
      - '**'  # the workflow is activated on every PR

jobs:
  linting_with_ruff:
    name: Linting with Ruff
    runs-on: self-hosted
    steps:
      - name: Checkout branch
        uses: actions/checkout@v3
      - uses: conda-incubator/setup-miniconda@v2
        with:
          miniconda-version: "latest"
          activate-environment: ruff
      - name: Install Ruff
        shell: bash -el {0}
        run: |
          conda activate ruff
          conda install -c conda-forge ruff
      - name: Linting with Ruff
        shell: bash -el {0}
        run: |
          ruff check . --config=ruff.toml

The workflow crashes at the step uses: conda-incubator/setup-miniconda@v2
I have another repository with the same (copy/paste) workflow and in the other repository works
can it be that it is because of some env variables? Like PATH. I don't know how conda-incubator/setup-miniconda@v2 works under the hood

thank you for your help

Dors your repo contain a conda directory by any chance?

No. There is no conda directory.

Can you share full logs? Thanks!

/disk2/home/github/self-hosted/01/_work/project_dir/project_source/3/condabin/conda config --add pkgs_dirs /disk2/home/github/conda_pkgs_dir
  Warning: Traceback (most recent call last):
    File "/disk2/home/github/self-hosted/01/_work/project_dir/project_source/3/condabin/conda", line 12, in <module>
      from conda.cli import main
  ImportError
  Traceback (most recent call last):
    File "/disk2/home/github/self-hosted/01/_work/project_dir/project_source/3/condabin/conda", line 12, in <module>
      from conda.cli import main
  ImportError::warning::: No module named conda.cli%0A
  : No module named conda.cli
Error: The process '/disk2/home/github/self-hosted/01/_work/project_dir/project_source/3/condabin/conda' failed with exit code 1

With that amount of info is hard to say, but it could be one of:

A different python is being invoked (check PATH)
A different site-packages is being search (check PYTHONPATH)

With the full logs as provided by the GHA download would allow me to check more things. If they are confidential, you can share them by email or Element?

I think the issue might be related to "I'm using self-hosted runner"


Watching symlinked files results in infinite loop

First things first, elm-live is awesome! I see at as an integral part of the elm experience.
Here's my issue
My directory structure looks something like this:
src/Foobar.elm
static/Foobar
├── Foobar.css
├── Foobar.html
├── Foobar.js
├── app.js
└── bundle.js
deploy/
├── app.py
├── foo -> ../static/
├── json
│   └── weather.json
└── reload.sh

Notice the foo -> ../static/, which denotes that foo is a symlinked copy of static from the parent directory.
when I run elm-live src/Foobar.elm --output=static/Foobar/app.js --dir=./static It gets caught in an infinite loop, repeating the following message
Success! Compiled 1 module.
Successfully generated  static/Foobar/app.js

elm-live:
    You've changed `deploy/foo/Foobar/app.js`. Rebuilding!

I'm not a big js hacker, but depending on how big of a fix you think it'd be, I can implement it and submit a pr. Thanks so much!!!!

Hey man, thanks a lot for reporting this. I’m pretty surprised this happens, because elm-live is designed to only watch *.elm files. If you can hack together a quick solution to your problem, I’ll be happy to help you turn it into a well-tested PR.
Also, it’d be good if you keep an eye on #72 – we’ll probably be working on the watch glob soon. If you find anything suspicious, it’d be good to batch it with our work there.

Just managed to reproduce the issue! 🎉
@nicklawls could you please check if this patch helps? https://github.com/tomekwi/elm-live/commit/55acbb07c343678a5719d34d17928caf7b9c0880

Just checked this patch out on a real project, works like wonders. Will be merging this in a sec.

🎉
Fix released in v2.7.4.

Thanks for fixing this Tomek! Sorry I wasn't able to help
On Wed, Jan 11, 2017 at 9:18 AM Tomek Wiszniewski<EMAIL_ADDRESS>wrote:

Closed #74 https://github.com/tomekwi/elm-live/issues/74.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tomekwi/elm-live/issues/74#event-919165324, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AFAmols1S9rkkqxS0g9y0DYPUSWRgPTLks5rROS5gaJpZM4KZ_bY
.

Did it solve your issue? If not, give me a shout and I’ll reopen 🙂

I changed my directory structure (for a couple different reasons) so that
there were no symlinks, so I can't test it against my original use case.
But if I encounter it again I will definitely let you know!
On Wed, Jan 11, 2017 at 1:45 PM Tomek Wiszniewski<EMAIL_ADDRESS>wrote:

Did it solve your issue? If not, give me a shout and I’ll reopen 🙂
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/tomekwi/elm-live/issues/74#issuecomment-271957612,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFAmouvxqXyYzgfoXm48UBJ9cLdNaw3rks5rRSNggaJpZM4KZ_bY
.


Add an option to lower the graphics on the Body Cam.

Even while using HDLethalCompany to lower the game's graphics, the body cam will still render everything at normal quality. Adding a option to disable or lower the quality of the effects on the body could help more with performance.

The latest version will now copy the settings from the main camera, which HDLethalCompany applies its quality settings to. As far as having custom graphics settings for the body cam, that's something I may look into later, but it's a little bit more involved to add all the options one might desire.


Create Meta Search explainer page

We'd like to create a new page on CC Search called Meta Search. It should be a sub-page of the About navigation item.
Here is the text content for the page.
We also reference three GIFs in the article, they can be accessed via:
Meta Search - Images - Cars example: https://drive.google.com/file/d/1zFHJt9stxHWwLBWeKBPbm3rL22hsA375/view?usp=sharing
Meta Search - Audio - Drums example: https://drive.google.com/file/d/1ZCvxw2Z7E6VCnwdzwCgSgSlc7NG5Bsxp/view?usp=sharing
CC Search Meta Search Portal - Example: https://drive.google.com/file/d/1_tb3L6RuTovCSPnrb8v1zW5nchg4NN09/view?usp=sharing

Can I take this issue?

go ahead!


fix: use react-jsx in tsconfig.json

Description
Changed jsx: react to jsx: react-jsx, because the example uses React 17 and TypeScript 4.1.
Additional context
With jsx: react, users will still be forced to import React even though it's not required anymore.
They would get the following error:

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

One thing I have noticed is that I would get the infamous "React is not defined" error. Is that a bug or is that an expected behaviour? I was able to get around that by adding
{
  esbuild: {
    jsxInject: "import React from 'react';",
  }
}

to my config, but this means that Vite isn't using the new JSX transform. Am I missing something? Do I need to enable something? This is my first time using React with Vite, I only used it with Svelte/Vue before.

Before merging, we should test it with a dependency that uses import React from 'react' explicitly. I suspect this leads to a syntax error from duplicate identifiers, as reported in #2369. I think we'll need to skip esbuild.jsxInject for files in node_modules.

Yeah, that indeed happens. Maybe make a compromise - in vite.config.{ts,js}, left the jsxInject solution commented out for the user to enable.

Yeah, that indeed happens. Maybe make a compromise - in vite.config.{ts,js}, left the jsxInject solution commented out for the user to enable.

Mh, just my 2 cent, but I personally don't like the inline comment style. It could be more improved docs in the vitejs.dev docs instead? :thinking:
Please first await responses of other team members :slightly_smiling_face:

Yeah, that indeed happens. Maybe make a compromise - in vite.config.{ts,js}, left the jsxInject solution commented out for the user to enable.

Mh, just my 2 cent, but I personally don't like the inline comment style. It could be more improved docs in the vitejs.dev docs instead? 🤔
Please first await responses of other team members 🙂

Yeah, it is not the best. I proposed how jsxInject could accept a function - see https://github.com/vitejs/vite/issues/2369#issuecomment-846317007

I've just published v1 of vite-react-jsx https://github.com/alloc/vite-react-jsx
@VottusCode Would you update this PR to use it instead?

I've just published v1 of vite-react-jsx https://github.com/alloc/vite-react-jsx
@VottusCode Would you update this PR to use it instead?

I will take a look at it. So far your new package looks good. Will try it and implement it.

We'll be merging vite-react-jsx and @vitejs/plugin-react-refresh into a new plugin, so I'm gonna close this.

#3588


Pagination of to-many relationships is underspecified

There's no clarification or example for this line:

A link object that represents a to-many relationship MAY also contain pagination links, as described below.

I think that means something like this:
// ...
{
  "type": "articles",
  "id": "1",
  "title": "Rails is Omakase",
  "links": {
    "self": "http://example.com/articles/1",
      "comments": {
        "self": "http://example.com/articles/1/links/comments",
        "resource": "http://example.com/articles/1/comments",
        "linkage": [{"type": "comments", "id": "5"}, {"type": "comments", "id": "12"}],
        "next": "http://example.com/articles/1/comments?page[cursor]=XYZCAFE"
      }
  }
}
// ...

but I'm not completely sure that's correct. Is that next link what the spec intended?
Also: should that next link be more like a self or a resource link for the relationship? I'm actually not completely sure I even know the difference between the two kinds of links in the case of a To-Many relationship :-/

Yes, this needs further clarification.
The pagination links must be for the relationship itself, rather than the related resources (and I have a foggy notion of mis-stating this recently in another issue, so apologies if I did).
Therefore, in your example, the next link might point to:  ""http://example.com/articles/1/links/comments?page[cursor]=XYZCAFE" and return the next set of linkage data.
The related resources MUST be returned now in a related link (not resource). See the definition of "related resource URL" here: http://jsonapi.org/format/#document-structure-resource-relationships
Related resources can be fetched by following the related resource URL to get to the first "page", and then subsequent pagination links can be retrieved from the top-level links object in the response.
So to clarify your example would be:
// ...
{
  "type": "articles",
  "id": "1",
  "title": "Rails is Omakase",
  "links": {
    "self": "http://example.com/articles/1",
      "comments": {
        "self": "http://example.com/articles/1/links/comments",
        "related": "http://example.com/articles/1/comments",
        "linkage": [{"type": "comments", "id": "5"}, {"type": "comments", "id": "12"}],
        "next": "http://example.com/articles/1/links/comments?page[cursor]=XYZCAFE"
      }
  }
}
// ...

Sorry about the resource/related confusion in my initial question, I had recently been referring to RC2.
What I'm hoping to do is provide a link where a client can actually download the next page of comments in one step - is it possible to do that with this pagination scheme? I think I can if I am allowed to put the actual comment data in included on the GET response for a relationship url, but from the spec I can't tell if I'm allowed to return anything other than linkages

If the original request specifies include=comments then the server could append that query param to the next link: "http://example.com/articles/1/links/comments?page[cursor]=XYZCAFE&include=comments"
This should return the next page of linkage data as primary data together with the included comments in a compound document.

Thanks, this is enough to set me in the right direction.

@dgeb Wait, what? An /articles/1/links/* style request can have an include parameter? Even though the primary data returned isn't a resource object(s) and doesn't have a links bag? Now I'm beyond confused about include's semantics. We really need to figure this and #497 out before 1.0.

We really need to figure this and #497 out before 1.0.

I agree that the spec should be explicit about the usage of include with relationship data, so I'm fine milestoning it. I'm not sure it's a blocker, but we can certainly discuss and clarify it.

Does this statement:

An endpoint MAY return resources related to the primary data by default

also apply to relationship data requests?

@dgeb Cool. But the confusion isn't just for relationship data...in #497, there seems to be confusion (or, at least I'm confused) about includes fundamental semantics in the typical compound document case. Please do weigh in when you have a sec!

Removing milestone now that #641 clarifies the usage of include with relationship endpoints.

Closing. @jes5199 If you feel this warrants further discussion, please feel free to continue the discussion.

Reopening this. It got marked as closed after we resolved an issue with ?include, even though we never added @dgeb's clarification about the target of the pagination links to the base spec, which is still very vague on this point. I'll try to open a PR soon, unless someone else wants to tackle it.

Stumbled upon this issue when trying to implement nested pagination for django-json-api. Also noticed that the spec is very vague regarding the links.
For example, when I paginate the nested relationship by 3 resources at a time:
"relationships": {
    "comments": {
        "meta": {
            "count": 21,
            "pagination": {
                "page": 1,
                 "pages": 1,
                  "count": 0
             }
        },
        "data": [
             {
                 "type": "Comment",
                  "id": "874"
             },
             {
                  "type": "Comment",
                   "id": "877"
              },
               {
                    "type": "Comment",
                     "id": "2273"
               }
       ],
       "links": {
           "self": "http://<IP_ADDRESS>:9000/drf/users/1/relationships/comments/",
           "related": "http://<IP_ADDRESS>:9000/drf/users/1/comments/",
           "first": "http://<IP_ADDRESS>:9000/drf/users/1/comments/?page=1",
            "last": "http://<IP_ADDRESS>:9000/drf/users/1/comments/?page=1",
            "next": null,
            "prev": null
       }
},

It is very confusing what the next. prev, etc. links should be, and what the pagination meta should represent. The pagination of the target http://<IP_ADDRESS>:9000/drf/users/1/comments/ (which can be paginated differently btw, i.e. by 20 at a time), or the pagination of the nested structure (3 at a time)?
Is the meta supposed to be there or not for the pagination?
Not paginating the nested structure is not an option, as I can have hundreds of relations.

@dgeb @ethanresnick are there any updates/thoughts/guidance regarding nested pagination of relationships? Because to me this feels like the primary blocker to trying this API format on a live system.

@dgeb I notice this issue is still open and doesn't appear to have been solved. This appears to be a blocking issue in Ember Data that implements JSON API. Just wondering if there is any update to this, been over a year since the last comment. Thanks

another year later ;)

Hmmm .... sorry, didn't realize this was still open.
The above comment remains correct. In reviewing, @ethanresnick is correct that this needs to be clarified further in the spec. Probably in http://jsonapi.org/format/#fetching-pagination or http://jsonapi.org/format/#document-resource-object-relationships (or both).
The key point is that pagination links always paginate the collection referenced by the sibling self link. Thus, any pagination links in a relationship are for paginating the relationship data (NOT the related resources). Any pagination links for a primary data collection are for the primary data.
@oligriffiths what is the blocking issue in Ember Data? Is it still open?

@oligriffiths Thanks for clarifying. I believe that the spec does provide complete support for relationship pagination, and am hopeful that #1251 clarifies this. To sum up:

To paginate relationship data, pagination links (next, prev, etc.)  can be included in links in the relationship object.

To paginate related resources only, follow the related link from links in the relationship object. Then pagination links (next, prev, etc.) can be included in the top-level links object of the response.

Please let me know if you think anything is missing.

Thanks @dgeb
Having read over the docs, I don't think it's clear as there are no examples under the pagination section for either the main resource or relationships.
http://jsonapi.org/format/#fetching-pagination
http://jsonapi.org/format/#document-compound-documents
I think it'd be prudent to add some examples so it's clear what this looks like.

3 years that the last update was made and I'm don't find a way to paginate related resources. Do you know some way to do something like this?


Validation is adding new object in form-reducer

I do not know if I am doing something wrong ,but I spent whole day debugging only to come to conlusion that validation is adding new object to form reducer data.
Lets say I have this model:
const initData = {
 someArray=[]
}

const store = applyMiddleware(thunk)(createStore)(combineReducers({
    data: modelReducer('data', initData ),
    dataForm: formReducer('data', initData ),
}));

Model is used in Form:
  checkSomeArray(object){
        if (object.dataA==null) {
            return false;
        }
        if (object.dataB==null) {
            return false;
        }
        return true;
    }

<Form model="data"
   onSubmit={(data) => this.handleSubmit(data)}
   onSubmitFailed={ (dataForm) => this.handleSubmitFailed(dataForm) }
   validators={{
     'someArray[]': (value) => this.checkSomeArray(value),
    }}
>
{antoher components..}
</Form>

Here is scernario I follow:
1. Add empty object to array
let obj={
 dataA:null,
 dataB:null
}
dispatch(actions.push("data.someArray",obj));

Result:
model:
 [0]: { dataA:null , dataB:null }

form (invalid):
[0]: { dataA:null , dataB:null } , invalid

2. Change some data in object
dispatch(actions.change("data.someArray[0].dataA","somethingA"));
dispatch(actions.change("data.someArray[0].dataB","somethingB"));
Result:
model:
 [0]: { dataA:"somethingA" , dataB:"somethingB"l }

form (valid) :
 [0]: { dataA:"somethingA" , dataB:"somethingB"l } , valid

3. Add another empty object to array
let obj={
 dataA:null,
 dataB:null
}
dispatch(actions.push("data.someArray",obj));

Result:
model:
 [0]: { dataA:"somethingA" , dataB:"somethingB"l }
 [1]: { dataA:null , dataB:null }

form (invalid) :
 [0]: { dataA:"somethingA" , dataB:"somethingB"l } , valid
 [1]: { dataA:null , dataB:null } invalid

Delete object with null data

dispatch(actions.remove("data.someArray",1));
Result:
model:
 [0]: { dataA:"somethingA" , dataB:"somethingB" }

form (invalid) :
 [0]: { dataA:"somethingA" , dataB:"somethingB" } , valid
 [1]: { null } valid

Basicly after deleting object , new object with value null appear in form data , but not in model data.
This object is also not validated, but is valid. However whole array is stated as invalid.
When I replace validator in form with:
  'someArray[]': (value) => true;
this does not happen.

It happening only probably somewhere in my code , its more complicated then this example. But how do I debug this change?

https://github.com/davidkpiano/react-redux-form/issues/619 .. this seems like exactly same issue I am having.
I tried to add "scenario"  from second post to codepen , but scenario is working correctly.
However I have little bit more complicated Form then this simple scenario ,but workflow is almost same.

Closing as this seems to be fixed in #619. Please let me know if you still have the same problem with the latest version.


Add "Relay" abstraction layer

Currently when we have a "relay" in sbws, we have a RouterStatusEntryV3 from stem. (Fun fact: In the RelayPrioritizer we temporarily add a priority property to this, but delete it before returning the relay.)
This has worked fine ... until now. Now we want to have access to a relay's bandwidth line in its full descriptor (#155) and we want this for the Minimally Viable Product (MVP). It would also be nice to be able to get the ed25519 identity (like @juga has done in #174), but this is not needed for the MVP.
Add a Relay class that abstracts away all the different sources of information from Tor into one unified object that only has the properties we use.

Even if #174 is not needed for a MVP, the patch is not very big and is done and if the Relay class created there can be used for the Relay class proposed here, then i think it should just be (merged) and used.
Otherwise we should see what else that class needs and where it should go.

Done


Notifications in de-bugging panel

As a bot builder, when I provision resources, there are chances that provisioning will fail due to resource failure. When that happens, give me clear notifications so that I can take action.
Proposed design solution  >

Captured in XLS - will get to this asap.


Realm 0.91.3 crashes a lot in production

Here's the call stack (I'm not able to further investigate this at the moment, but we've gotten ~1k crashes from these in total in less than 12 hours now):
Thread : Crashed: com.apple.main-thread
0  libsystem_kernel.dylib         0x0000000196cdf270 __pthread_kill + 8
1  libsystem_pthread.dylib        0x0000000196d7d170 pthread_kill + 112
2  libsystem_c.dylib              0x0000000196c56b18 abort + 112
3                                 0x000000010041d7f8 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 1092
4                                 0x000000010041d908 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 1364
5                                 0x0000000100327008 void realm::util::terminate<unsigned long, unsigned long>(char const*, char const*, long, unsigned long, unsigned long) (terminate.hpp:45)
6                                 0x0000000100479058 realm::ArrayString::set(unsigned long, realm::StringData) + 3096
7                                 0x0000000100487b04 realm::AdaptiveStringColumn::set(unsigned long, realm::StringData) + 3088
8                                 0x000000010048aef8 realm::AdaptiveStringColumn::set_string(unsigned long, realm::StringData) + 880
9                                 0x00000001004dd210 realm::Table::set_string(unsigned long, unsigned long, realm::StringData) + 32476
10                                0x000000010031cb70 RLMDynamicSet(RLMObjectBase*, RLMProperty*, objc_object*, unsigned long) (row.hpp:427)
11                                0x00000001003306ac RLMAddObjectToRealm (RLMObjectStore.mm:445)
12                                0x00000001003516dc -[RLMRealm addObject:] (RLMRealm.mm:648)
...

The crashes are up to 11k now with a lot of the users affected not even being able to use our app at all, so I think we have to disable Realm entirely in production via expedited app review as it's causing widespread issues. The other call stack from which about half of the crashes are coming from is:
Thread : Crashed: com.apple.main-thread
0  libsystem_kernel.dylib         0x00000001948fb270 __pthread_kill + 8
1  libsystem_pthread.dylib        0x0000000194999170 pthread_kill + 112
2  libsystem_c.dylib              0x0000000194872b18 abort + 112
3                                 0x00000001003ad7f8 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 1092
4                                 0x00000001003ad908 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 1364
5                                 0x00000001002b7008 void realm::util::terminate<unsigned long, unsigned long>(char const*, char const*, long, unsigned long, unsigned long) (terminate.hpp:45)
6                                 0x00000001004089c0 realm::ArrayBigBlobs::set(unsigned long, realm::BinaryData, bool) + 1408
7                                 0x0000000100417ad8 realm::AdaptiveStringColumn::set(unsigned long, realm::StringData) + 3044
8                                 0x000000010041aef8 realm::AdaptiveStringColumn::set_string(unsigned long, realm::StringData) + 880
9                                 0x000000010046d210 realm::Table::set_string(unsigned long, unsigned long, realm::StringData) + 32476
10                                0x00000001002acb70 RLMDynamicSet(RLMObjectBase*, RLMProperty*, objc_object*, unsigned long) (row.hpp:427)
11                                0x00000001002c06ac RLMAddObjectToRealm (RLMObjectStore.mm:445)
12                                0x00000001002e16dc -[RLMRealm addObject:] (RLMRealm.mm:648)

We’re trying to look into this now… Sorry for the issue. Any reason why you upgraded in 0.91.3 in the first place? (Is downgrading to an earlier version an option for you?)

Which version were you using in your last release?

@anlaital I just want to make sure, are you using the release version of 0.91.3 or are you using the beta version you were playing around with earlier in the week?

@segiddins I'm using the actual release version (0.91.3) of Realm in production.
@timanglade The reason why I had to upgrade to it was that the previous version had a breaking issue with indexed properties (#1735) which resulted in skewed account balances and missing transactions for our users.
Looking at all the crashes (we've gotten about 13k crashes now from about 4k users with about 25 different stack traces), it would seem that there is in fact some similarity between them. Most of them include trying to write an object into Realm that previously contained an indexed property (this property is no longer indexed, but is still present in the RLMObject subclass), so there might be a link there. We have not been able to reproduce these issues in piloting or testing, so I imagine that it's plausible that this occurs for users that have had their database indexes previously corrupted by the aforementioned issue.

@anlaital Would it be possible for you to share all the different stack traces<EMAIL_ADDRESS>

@anlaital Could you also share what version of Realm your previous release was using?

It appears that the Realm version in production now is in fact 0.91.2 instead of 0.91.3 since that got released the day after we packaged our App Store build. Previous Realm version in all our production builds was 0.91.1.
So, 0.91.1 -> 0.91.2 upgrade seems to generate a ton of issues in some cases.

@danielpovlsen I've sent you an invite to<EMAIL_ADDRESS>so you can check the stack traces yourselves. I will be able to get a copy of a database that always crashes on Monday, but until then I cannot investigate this further as I'm travelling. Hopefully we'll get this fixed soon, as now we're getting bombarded with 1-star ratings instead of the usual 5-star ones.

Looking into stack traces now. Our sincere apologies for the crashes, I know the ratings systems are really geared to make you pay for those, so we’re trying to get a fix out asap.

I can pretty much definitely now say that this issue is caused by the corrupted indexes in the previous Realm version we used in production. I submitted a fix to App Store today where I renamed the offending class, thus causing a different table to be created for it. We tested it with TestFlight and it did in fact fix the issue for our two internal testers that had encountered this in production.
The entire table for the Transaction class was corrupted so that any modifications - including deleting objects - caused a crash every time. Luckily implicitly deleting the entire table for that class in a migration worked as expected, so we're hopefully in the clear for now.
I will update this later and I think we need to have a discussion on how to prevent this from ever happening again.

Very happy to hear that!!!
We will definitely do a post mortem analysis of this issue. Any input appreciated - we can continue that on the email thread.

Update: bug fixed in core, will do a new cocoa release + full post-mortem tomorrow.
We introduced a bug in 0.91.2 causing Realm to improperly remove indices when multiple indices are present on a single model, leading to data corruption in some cases. This bug is also present in 0.91.3. Removing indices while using realm-cocoa 0.91.2 or 0.91.3 is not safe, do not do it. We released 0.91.4 today, to temporarily disable removing indices while we fix the bug. We will release 0.91.5 tomorrow, which re-enable removing indices (with the bugfix).
We take these kind of issues extremely seriously. Please accept our sincere apologies while we prepare a full post-mortem explaining what happened, why it happened and what we will do to prevent issues like this from happening again, to be published on our blog tomorrow.

0.91.5 is now out.

The post mortem is out, the bug is now fully resolved. Our apologies again and thanks for reporting the issue.

This weird crash comes out again with Realm 0.93.1
@timanglade
Thread : Crashed: com.apple.root.default-qos
0  libsystem_kernel.dylib         0x0000000194817270 __pthread_kill + 8
1  libsystem_pthread.dylib        0x00000001948b5170 pthread_kill + 112
2  libsystem_c.dylib              0x000000019478eb18 abort + 112
3  her                            0x000000010065bb18 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 10
4  her                            0x000000010065bc58 realm::util::terminate_internal(std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) + 320
5  libsystem_pthread.dylib        0x00000001948b5170 pthread_kill + 112
6  her                            0x000000010066934c void realm::util::terminate<unsigned long, int>(char const*, char const*, long, unsigned long, int) + 408
7  libsystem_pthread.dylib        0x00000001948b5170 pthread_kill + 112
8  her                            0x0000000100661e6c realm::Array::insert_bptree_child(realm::Array&, unsigned long, unsigned long, realm::Array::TreeInsertBase&) + 1504
9  her                            0x00000001006caeb0 unsigned long realm::Array::bptree_append<realm::AdaptiveStringColumn>(realm::Array::TreeInsert<realm::AdaptiveStringColumn>&) + 440
10 her                            0x00000001006c92b4 realm::AdaptiveStringColumn::bptree_insert(unsigned long, realm::StringData, unsigned long) + 360
11 her                            0x00000001006c9438 realm::AdaptiveStringColumn::do_insert(unsigned long, realm::StringData, unsigned long, bool) + 80
12 her                            0x00000001006cb2bc realm::AdaptiveStringColumn::insert(unsigned long, unsigned long, bool) + 40
13 her                            0x000000010071e714 realm::Table::insert_empty_row(unsigned long, unsigned long) + 120
14 her                            0x00000001005b1838 RLMAddObjectToRealm (RLMObjectStore.mm:407)
15 her                            0x000000010059e720 RLMGetLinkedObjectForValue(RLMRealm*, NSString*, objc_object*, unsigned long) (RLMAccessor.mm:206)
16 her                            0x000000010059d8b4 RLMDynamicSet(RLMObjectBase*, RLMProperty*, objc_object*, unsigned long) (RLMAccessor.mm:716)
17 her                            0x00000001005b1a80 RLMAddObjectToRealm (RLMObjectStore.mm:463)
18 her                            0x00000001005d595c -[RLMRealm addObjects:] (RLMRealm.mm:723)

@demon1105 that's an entirely different issue. Could you please open a new issue on this repo along with any further information that could help us identify or reproduce the issue? There should have been an assertion message logged to the console. Thanks.

@jpsim
I got this crash log from Crashlytics, there's no assertion message except the log above. I'll open a new issue if I got something detail else. Thanks for your reply.


Improve OAP cluster performance

In these days tests, by my back to back works with @hanahmily , we made big progresses in

Reduce CPU cost in low payload
Improve single node in 8U(GCP) performance to 80k telemetry per second.

But we still need to work on improving performance in cluster mode and when scale out.
Right now, 3 nodes cluster has only the same performance as a single node, also scaling out from 1 to 3 doesn't make performance better.
In this pull request, I do following changes

Remove the codes about sending to L2 in every 1000 indicator rows.
Make L2 send based on the timeline, send every second by default.
Settings related to DataCarrier channel and buffer sizes could be set by System env.

Let's see the test results.

In these days tests, by my back to back works with @hanahmily , we made big progresses in

Reduce CPU cost in low payload
Improve single node in 8U(GCP) performance to 80k telemetry per second.

But we still need to work on improving performance in cluster mode and when scale out.
Right now, 3 nodes cluster has only the same performance as a single node, also scaling out from 1 to 3 doesn't make performance better.
In this pull request, I do following changes

Remove the codes about sending to L2 in every 1000 indicator rows.
Make L2 send based on the timeline, send every second by default.
Settings related to DataCarrier channel and buffer sizes could be set by System env.

Let's see the test results.

Do you mean single node can handle as much segment as a cluster of three nodes?
I have a cluster of two nodes, when there is only one node, CPM value is the same as grep count from access count, but when I add one node, CPM is smaller than the count.


Reshaping horizontal table to vertical table (column headers in first row)

I have a table where the field and its values appear horizontally one after the other ( as shown in problem figure). I need to create a final table where all the fields appear as row header and subsequently their values ( as shown in expected solution figure).

I can't really help you with that here, I'd recommend asking on StackOverflow for general questions like this. If you have a specific question about VBA-Web I'm happy to look into it.


How do you add icons for custom social links?

I looked at the structure of the links outlined in the socials.html and i added gamejolt as one of the custom links. I updated my config.toml file to reflect the changes made. Upon reloading my website, the link is definitely there when i hover my mouse over the blank area of the social links. There is no icon available whatsoever.
I am still working on it, but you can preview the site here

This is because I'm only using the icon set from https://semantic-ui.com/elements/icon.html#brands. Currently, this theme doesn't support the feature of add custom icons in socials.
I will try to implement this feature in several few days.

That's great news. I just realized i can add markdown badges, so I'm planning to do that instead.  Its still awesome, that you are planning to add the feature in a few days.


⚠ Bofrost.de has degraded performance

In 6f7b505, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 2058 ms

Resolved: Bofrost.de performance has improved in f1f859f after 6 minutes.


Error Thrown by ./harbor registry list Command Due to Undefined Flag

When executing the  ./harbor registry list command,  an error is encountered:
./harbor registry list
Error: flag accessed but not defined: credential-name

This error occurs because the list command attempts to access a flag named credential-name, which is neither registered within the command nor within any parent commands.
https://github.com/goharbor/harbor-cli/blob/2f91494388b975a4d7c2ba0e656275a120acc633/cmd/harbor/root/registry/list.go#L27
To resolve this issue, the credential-name flag should be registered within the list command.

Apart from the list command delete, update and view also have the same error. So a better way could be adding the credential-name as a persistent flag on registry .


Discuss the effect on public schema of @internal directive

In Federation v2, the @inaccessible directive (in our case it's called @internal) hides a field from the end consumer of GraphQL API.
# schema A

type User @key(fields: "id") {
  id: ID!
  secret: ID: @internal @shareable
}

# schema B

type User @key(fields: "id") {
  id: ID!
  secret: ID @shareable
}

What GraphQL API consumer sees:
type User {
  id: ID!
}

I would say this approach (hiding a field if it's marked as internal at least once) is a good practice as it reduces chances of leaking a field to the public.
The opposite approach would be to mark a field as internal in all subgraphs that define the field (easy to leak something).
It becomes problematic with combination of the @lookup directive.
I can imagine a situation where there are more than one lookup fields of the same name, and only the subset of them is meant to be used for querying data.
Here's what I mean:
# schema A

type Query {
  userById(id: ID!): User @lookup
}

# schema B

type Query {
  userById(id: ID!): User @lookup @internal
}

In this example, a team that develops schema B, may want to limit the usage of the field to make it available only for the query planner, specifically the entity resolution (internal request to resolve a type based on its key).
What are your opinions? Should we introduce two different behaviors for @internal with and without @lookup or stick to what we have today (At least one @internal to hide a field completely).

Hmmm, this is a crazy thought perhaps, but would it make sense to retain @inaccessible with the current behavior (marking a field @inaccessible in any subgraph will hide it from the public API) and add @internal to mean just hiding the field from the current subgraph?

I personally would push for consistency over ease, so I'd require that @internal occurred on every instance or none, and if it didn't I would explicitly throw a composition error.

Is this an issue that can happen with @lookup or should we restrict define the EXACT same lookup resolver in multiple locations?
https://github.com/graphql/composite-schemas-spec/pull/30/files#diff-eb6987ee6c07e5df35ced48c4788775c2d9276557955481a9624b1917f521a36R18-R19
If we use the same name but different args that a different issue, but we could prevent this with look up checks.

As for having it existing in one location vs all, we needed to support @inaccessible hiding a field when only mentioned once for the upgrading flow.
Consider the following
I have an existing shared type
# Subgraph A
type Position @shareable {
  x: Float
  y: Float
}

# Subgraph B
type Position @shareable {
  x: Float
  y: Float
}

Now I want to add a new field Position.z. I am not going to be able to do that all at once so each subgraph is slowly going to have to update, even if it is back to back.
When I go and first update Subgraph A, should the change result in failed composition? Apollo Federation allows this today
Making a change to Subgraph A, even if I upgrade Subgraph B in the same hour, should the supergraph be broken in that time?
# Subgraph A
type Position @shareable {
  x: Float
  y: Float
  z: Float @inaccessible
}

# Subgraph B
type Position @shareable {
  x: Float
  y: Float
}

When I go and first update Subgraph A, should the change result in failed composition?

Thinking about it, this would require coordination so contrary to what I said before, the directive should be interpreted locally. I think @martijnwalraven's suggestion sounds reasonable:
foo: String @internal would mean "don't expose this field from here" (but it might be exposed by another subgraph)
foo: String @inaccessible (or maybe foo: String @internal(force: true) or similar) would force the field to never be exposed. For this one I would require that no other subgraph exposes it (i.e. each mention has either @internal or @inaccessible) and I would fail composition otherwise. I'd also ensure through tooling that if @inaccessible exists on one of the other subgraphs you're discouraged from deploying a breaking change here.


Changes to repeater list to remove width as string. Update Version

Made width as number and updated fuelux version to 3.11.0
Fixes #1439

_config.yml appears to have been modified as well. intentional?

@swilliamset No will fix now


[2040] Change fields to not editable when published

Context
The fields 'SEND', 'applications open' and 'start date' shouldn't be changed after they've been published.
Changes proposed in this pull request
Wrap course_params_assignable() in tests and prevent the changing of is_send, applications_open_from and application_start_date when published.
Guidance to review
At the moment this only checks whether content_status is published to decide whether to permit the change, it may be the case that we should disable it with other statuses. Also it seems that the error message enrichments: [] persists regardless of whether the data has any errors, this is a side issue that perhaps warrants further discussion.
Checklist

[X] Make sure all information from the Trello card is in here
[x] Attach to Trello card
[X] Rebased master
[X] Cleaned commit history
[X] Tested by running locally

 Change fields to not editable when published

I don't think we should merge this till the frontend prevents users hitting it

https://github.com/DFE-Digital/manage-courses-frontend/pull/570 has already been merged, only thing that remains is having the frontend use the edit options provided here instead of doing the logic itself


Added python sample for assistant skills

Same problem as #31, assistantSkillTrigger does not seem to be working.

@shibayan , assistant skills feature has also moved to Microsoft repo - https://github.com/Azure/azure-functions-openai-extension. Please migrate this PR or make more contributions directly there.


Remove hardcoded bip39 words and use ebmit list

Seedsigner currently has the list of bip39 words in English hard coded. It would be better if seedsigner referenced embits words list here

This has been fix by PR #19. Ideally should be tested prior to merging to main. 1 line of code change.


Timeline Configuration

resolves #44
resolves #45
DONE:

Templating system and configuration for timelines
Refactored the timeline buttons to separate component.  This component will have dropdown settings when multiple timelines are displayed
Refactored the charts into a TimelineCharts component.  When a timeline configuration is available it will display multiple charts at once.

Almost done, just need to finalize the Key.
I have the key working with multiple timelines.  I need to do the following to make sure it works properly.

[ ] Make sure it works with single timelines properly (key only needs to be displayed for graph, swimlane and maybe filters
[ ] For Events/Detections it just needs a title displayed
[ ] The display of the timeline may need to be on/off/hover state?  That way it displays when a user hover's over the timeline to indicate what the values are.
[ ] What to do about the issue of scrolling and having more items in the area that are displayed?


bitfield assignment error fix for iotjs on nuttx

IoT.js-DCO-1.0-Signed-off-by: Chunseok Lee<EMAIL_ADDRESS>

This PR related to  #634.

@chunseoklee did you have chance to investigate the reason why it's working for Jerry's STM32 build?

@egavrin I found the reason. It comes from NUTTX side. Thus, close this PR.


How to apply on yolov3 any instructions?

How to apply on yolov3 any instructions?

Hi,
YOLO-based architectures are not currently the among the methods we trained with RS Loss, thus I cannot provide "instructions", but I can provide some opinions. If I were to try, then I would follow the following roadmap:

Instead of predicting 4+1+C dimensional output for each anchor (4: for box regression, 1: for objectness, C: for class probabilities), I would modify the design such that the network predicts 4+C dim output because I expect that the objectness of YOLO could be removed since it is also prioritizes detections. I expect that our sorting loss handles objectness similar to centerness/IoU branches. However, difficult to be sure without experimental proof.
We always used binary Sigmoid classifiers for each class, instead of softmax over all classes. I think YOLO also prefers sigmoid but I recommend checking it.
After removal of the objectness scores and the decision to use sigmoid classifiers, inference time implementation should be reviewed.
For training, given 4+C dimensional output, RS Loss can be easily applied as we did for several architectures. You can check out Fig. 3 in our paper for details or some of our implementation in this repo. Basically, you need to incorporate RS Loss and GIoU Loss together with score-based instance weighting and value-based task weighting.
Finally, learning rate needs to be tuned, and I think this is important since for all the networks we trained, the learning rate of RS Loss is different from the default learning rate.

I think it is worth to try, and please let me know if you do so. Thanks for your interest in our work.
Feel free to get in touch if you have more questions.

@kemaloksuz Gracis amigo. I'll do it

@kemaloksuz Gracis amigo. I'll do it

大佬。有没有成功呀~
Mogul. Did you succeed~


[azure-storage-cpp] Upgrade to 6.0.0

azure-storage-cpp has been upgraded to 6.0.0.
https://github.com/Azure/azure-storage-cpp/releases/tag/v6.0.0

Merged, thanks for the PR!


Iterate for loop template in reverse order

It would be nice to traverse an array in reverse items order. Introducing a new flag in the loop template, for example reversed, would allow the user to iterate starting from the last item to the first one.
Suggested syntax example:
[|@ iterator : array reversed|]
body
[|end@|]

Hello. Thanks for the request, seems good. It will be implemented in a future version.


Calibrate HIV model for Zimbabwe

@alina-muellenmeister some suggestions of network parameters to vary:

risk group distribution - try different distributions for p in:

risk_groups_f=ss.choice(a=3, p=np.array([0.85, 0.14, 0.01])),
risk_groups_m=ss.choice(a=3, p=np.array([0.78, 0.21, 0.01])),

Concurrency preferences, especially for risk group 2. If you do sti.StructuredSexual(f2_conc=0.1), this will create a network where 10% of females in risk group 2 prefer to have more than one partner. Based on experiences with calibrating HPVsim, this parameter is quite influential. I expect it will be even more so for HIV given the importance of acute-phase infection.
Likelihood that partners form stable pairs (p_pair_form)

You're free to try other parameters too, but these are the ones that we don't really have data on and which I expect to be influential, so might be a good place to start!

Closing this as it's moved to the analysis repo


Horizontal scaling?

Is your feature request related to a problem? Please describe.
I am worried that if I adopt this product, it won't scale well in high traffic. I would want to be able to have multiple node servers handling requests in a round-robin fashion, hosted on a fleet of containers. But from what I gather from looking at the docs and code, this isn't possible. If I run multiple instances, I think I'd be running multiple collectors, which would duplicate metrics.
Describe the solution you'd like
I would like to be able run the server in "view only mode", and disable metric collection. This way, I can run one metric collector, and leave the rest of the instances as view only, so that I can scale out new instances to meet traffic needs.
Describe alternatives you've considered

modify the source code myself,
simply have 1 instance and hope it handles traffic load,
simply have many instances, and don't care that the metrics are duplicated. This would mean that different users may have a slightly different metric reporting experience.

Additional context
I think this project is awesome! I would love to adopt it for my use case :)

Yes, I have working on separating the collection and display part in local.
Taking longer than usual to raise the PR
Will close the issue once raised and merged.

Hi about to 1 year since I have said I will work on this, but with the latest release it is doable. Full honesty I have not tried it my self
You can specify postgres database
You can run node src/lib/server/startup.js in one of the servers. This will collect metrics
You can host just run the frontend using node main.js
Please check the docs https://kener.ing/docs/deployment/#npm and tell me if it worked


Oracle Driver porting or adding

Any updates or roadmap for Oracle Driver porting or adding on last version?
Thanks in advance.

We need a dev for that. The maintainer the oracle driver reported to be busy.
I don't have the knowledge required on Oracle DB to get it ported, so we need someone willing to work on that to have any updates

I'll convert this to a discussion since it won't be worked in this repository, but the discussion still have room to grow here


[C++] GcsFileSystem::Make should return Result

For consistency with S3FileSystem and others. See discussion at https://github.com/apache/arrow/pull/13404#discussion_r901799543
Reporter: Neal Richardson / @nealrichardson
Note: This issue was originally created as ARROW-16884. Please see the migration documentation for further details.

I am currently working on this good-first-issue on my fork, although I know it is an older issue. If you have any additional information or context regarding this issue, please feel free to comment. Thank you!

take

Issue resolved by pull request 44503
https://github.com/apache/arrow/pull/44503


Route traffic percent gets updated for the revision that is not in the ready status

Launch a new revision that is in bad state, The route traffic gets split to the new revision that is not ready
tests-predictor-00003-deployment-7644f8cbb5-cdgt4      2/2     Running            0               24m
tests-predictor-00003-deployment-7644f8cbb5-jwfgh      2/2     Running            0               25m
tests-predictor-00003-deployment-7644f8cbb5-mxmms      2/2     Running            0               24m
tests-predictor-00003-deployment-7644f8cbb5-wlwt2      2/2     Running            0               26m
tests-predictor-00004-deployment-79949866fb-9gt5h      0/2     CrashLoopBackOff   8 (3m19s ago)   19m

spec:
  traffic:
  - latestRevision: false
    percent: 56
    revisionName: libnlp-bms-tests-predictor-00003
  - configurationName: libnlp-bms-tests-predictor
    latestRevision: true
    percent: 44

Rollout orchestrator state
spec:
  initialRevisions:
  - direction: up
    latestRevision: true
    minScale: 4
    percent: 100
    revisionName: libnlp-bms-tests-predictor-00003
    targetReplicas: 3
  stageTargetRevisions:
  - direction: down
    latestRevision: false
    minScale: 4
    percent: 56
    revisionName: libnlp-bms-tests-predictor-00003
    targetReplicas: 3
  - direction: up
    latestRevision: true
    minScale: 4
    percent: 44
    revisionName: libnlp-bms-tests-predictor-00004
    targetReplicas: 1
  targetFinishTime: "2024-02-17T15:39:21Z"
  targetRevisions:
  - latestRevision: true
    minScale: 4
    percent: 100
    revisionName: libnlp-bms-tests-predictor-00004

This is what we expected for the current implementation.
route spec has changed, but as long as route status is not updated to the false revisions, we are fine with them.


Update import of load_state_dict_from_url

Used your nice package for a while, but accidentally got an import error, with import from torch hub seems to be fine

Sure, the v0.4.1 have been uploaded now.


Nether Quartz Balance

Mining nether quartz without luck gives 1 quartz per ore. Comparable
mods give two per grinding. Certus Quartz gives one crystal one dust in
the sag mill recipe.
This change makes Nether Quartz comparable to Certus Quartz in EIO
recipes, and comparable to other mods, while still improving compared to
vanilla yields (just not quadruple)

I'd prefer if it was just 2 quartz, with may be a chance of dust. I think I will implement this myself. Thanks for the heads-up on the imbalance though.


jax.lax.linalg.eigh on GPU seems too slow

import jax
import jax.numpy as jnp

def timer(f):
    from time import time
    f() # warmup and compile
    t = time()
    for _ in range(3):
        f()
    print((time() - t) / 3)

y = jax.random.uniform(jax.random.PRNGKey(0), (16, 1024, 1024)) / 16
s = jax.block_until_ready(y @ y.transpose(0, 2, 1) + jnp.eye(1024))

from jax.lax.linalg import eigh as jeigh
f = jax.jit(jax.vmap(jeigh))
timer(lambda: jax.block_until_ready(f(s))) # 0.90s for 16 problems

from scipy.linalg import eigh as seigh
import numpy as np
ss = np.array(s[0])
timer(lambda: seigh(ss)) # 0.21s for 1 problem

GPU: V100-PCIE 16G
CPU: Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz
jax.lax.linalg.eigh on 1 GPU use 0.90s for 16 problems. on all CPU-core(top report 2340% peak CPU usage) use 2.44s for 16 problems.
scipy.linalg.eigh on 1 CPU-core(top report 200% peak CPU usage) use 0.21s for 1 problem.
This result means that, GPU only have <4x throughput, and >11x CPU usage only have <1.4x throughput, while there should be a embarrassingly parallel given vmap.

Ultimately JAX is at the mercy of the algorithms provided by cusolver here. For small matrices (smaller than 32x32), JAX currently uses the batched Jacobi solver that Nvidia provides. For larger matrices, JAX currently iterates over the batch elements sequentially, so you should expect no speedup from vmap.
There are a number of things one could try here.
One would be to try the batched Jacobi solver at larger sizes (https://github.com/google/jax/blob/28842151c6030a951bc389b771a3dcd3d4ca74a7/jaxlib/cusolver.py#L551 and its HLO-only cousin a few lines above), see also https://docs.nvidia.com/cuda/cusolver/index.html#cuSolverDN-lt-t-gt-syevjbatch
Note this code is in jaxlib, although it's in the Python part of jaxlib so you can just locally edit your copy to play with it.
Another would be for jaxlib to solve multiple eigendecomposition problems in parallel on multiple CUDA streams. That would only be profitable if you aren't fully occupying GPU and CPU.

Thanks for speedy reply! IIUC, I can change the jaxlib python code without building jaxlib by myself, and let jaxlib use batched jacobi solver for large matrices as well.

Yes, you could just edit the (installed) copy of cusolver.py to alter the threshold. Does it help?

You could send a PR altering the threshold, if you like, although we'd probably need to collect a wider range of timings at different sizes and batch sizes.
The CPU version also just calls a LAPACK function in a loop to handle batches. In fact, it's a LAPACK function we use provided by scipy, so I'd be surprised if you saw any speedup over scipy at all. That said, the algorithm does use parallelism internally at least for some of the phases. If we aren't getting enough parallelism, we could consider using multiple threads.
We don't have a batched eigh on CPU (as far as I am aware, no-one does on CPU, although some of the algorithms that work well when vectorized on GPU and TPU might work well on CPU also particularly for small matrix sizes, e.g., a vectorized Jacobi solver).

In fact, it's a LAPACK function we use provided by scipy, so I'd be surprised if you saw any speedup over scipy at all. That said, the algorithm does use parallelism internally at least for some of the phases.

JAX will use multiple core, while scipy only use single core. But JAX with multiple core only has a bit speed up, at the cost of preventing user manually using spmd/data parallel.

Can we have pytorch-like set_num_threads and set_num_interop_threads to control the parallel?
import torch

torch.set_num_threads(1)
torch.set_num_interop_threads(24)

@torch.jit.script
def mt_eigh(x: torch.Tensor):
    futs = [torch.jit._fork(torch.linalg.eigh, x[i]) for i in range(24)]
    return [torch.jit._wait(fut) for fut in futs]

I find that this is 50x faster than JAX on 24-core CPU (and 40x faster than naively let pytorch use intra-op parallelism)


Stac validation

Changed the STAC output to conform with validator.
While working with the stac_browser, found the structure of the STAC content was a bit off. Found a validator at https://github.com/stac-utils/stac-validator which works well. Adjusted the generated STAC record to be valid and now bb and temporal range work as expected in the browser.

Also, one other thought I had…is this validator able to accessed programmatically?  Would be nice for us to run an automated test that ensures we pass it when we write out the results.

Going to merge this one and will look at getting the stac validator hooked up in a followup PR.


Mark ObjC typedefs as unavailable in Swift.

ATTN: BREAKING CHANGE FOR SWIFT USERS
This is part of the larger Swift API improvements effort. These reduce
visibility in autocomplete, and we've mostly migrated away from them
already. This hides the unused type from the API surface to avoid
cluttering the list of types available.

Fixes #9341. Need to actually fix the CombineSwift unit tests.

The API review is approved. This can be rebased to v9 and merged.

Pretty sure the Auth lib lint is a flake, will merge and address if it's failing in other PRs.


chore: release v0.0.5

:robot: I have created a release beep boop
0.0.5 (2024-03-14)
What's Changed

fix: correctly set default version in install.sh by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/20
feat(ci): define an action for installing gdbuild by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/22
fix(ci): correctly update PATH in setup action by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/23
fix(ci): correctly export environment variable in setup action by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/24
fix(ci): correctly reference home directory in action by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/25
fix(ci): correctly use environment variable in cache path by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/26
fix(ci): use correct path in cache key by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/27
fix(ci): conditionally check for executable on path during setup by @coffeebeats in https://github.com/coffeebeats/gdbuild/pull/28

Full Changelog: https://github.com/coffeebeats/gdbuild/compare/v0.0.4...v0.0.5

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/coffeebeats/gdbuild/releases/tag/v0.0.5 :sunflower:


Implement league standings

-This adds a new namespace called leagueStandings under stats, which
returns the NBA's standings for that year.
-Included the necessary API standings endpoint.
-Added a new transform to segment standings by conference and divison.
-Lastly, included a test and updated Readme on how to use it.

Also, I'm not entirely sure if the standings.json file is needed along with the updateStandings function found in index.js. I was trying to follow your convention, but not entirely sure if it is needed. Could you explain why you're caching the teams and players? :D

Wow! Looks great. Thanks @cacheflow-lil guy. Looking forward to this getting merged in!

+1 @cacheflow @bttmly

Shoot, sorry, forgot to bump nba-client-template in this package after this commit https://github.com/bttmly/nba-client-template/pull/3
This functionality is automatically added once we use the new template, so we don't need to make any JS source changes. https://github.com/bttmly/nba/commit/04667cdc050e7d298bad9ca75ca47fd0831a59dd
Seems to work great, feel free to reopen if you hit any issues. Latest is<EMAIL_ADDRESS>

Cool cool. I'll check it out. Thanks @bttmly.


Cinema Mode with art cover in fullscreen?

🧐 Have you read the FAQ and viewed similar issues?

[X] I have read the FAQ
[X] I have checked older issues, open and closed
[X] I did a clean install of SpotX as described in the FAQ

Сountry of your account
Taiwan
What is your Spotify Plan?
Premium
Do you have Spicetify installed?
Yes
ℹ Computer information
- Spotify: <IP_ADDRESS>1.gd0e8a92c
- Windows: Windows 11 23H2 22631.3007
- PowerShell: 5.1.22621.2506

📝 Description
When using Fullscreen mode, it will have an art cover in the background, and u can switch between it and only lyrics with colored-background like this.

I'm currently using Spicetify now and I saw some themes displayed that you can see the art cover with Cinema mode instead of Fullscreen mode.

But I can only use this button to turn on Cinema mode, and it won't have the art cover like the themes description said.

I really want to have the art cover without using fullscreen, are there any ways to do that?
ps. sorry if I am being silly, I'm new to spotify and I think there should be a Cinema mode button like fullscreen has?
ps2. BTW I just found that 1.28 breaks some themes, and also some features in SpotX like funnyprogressbar. (maybe

not related to spotx


How to wait for an element that doesn't have id field?

Suppose the element is given by:
 <input name="username" type="text" autocomplete="off" class="form-control"  placeholder="input email address">

Since there is no id field, I've no idea about what should the selector be. I tried the following one but failed.
let selector = r#"input[name="username"]"#;

Thank you.

I've tried this and it worked
tab.wait_for_element("input[name='account']")


metrics: add missing check_leader gRPC metrics

What is changed and how it works?

Issue Number: Close #14658
What's Changed:

Record the missing check_leader gRPC metrics.

Related changes

PR to update pingcap/docs/pingcap/docs-cn:
Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Side effects

Performance regression

Consumes more CPU
Consumes more MEM

Breaking backward compatibility

Release note
None

/release

/merge


Adding Openshift platfor adopter

Proposed changes
Updating the adopters section to encompass all of Red Hat OpenShift as we are using Litmus, in addition to Kraken, for chaos testing
Types of changes
What types of changes does your code introduce to Litmus? Put an x in the boxes that apply

[ ] New feature (non-breaking change which adds functionality)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[X] Documentation Update (if none of the other choices applies)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[X] I have read the CONTRIBUTING doc
[X] I have signed the commit for DCO to be passed.
[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works (if appropriate)
[X] I have added necessary documentation (if appropriate)

Thanks @paigerube14 for the update on adoption!

Adding @radudomnu who has been playing with litmus 2.0 beta!