🚀 7.2.0 maintenance

[x] Set-up workspace
[ ] Document setting up workspace
[x] Update minor and patch dependencies
[x] Attempt dependency updates where they are breaking (major updates)
[ ] Update version information, repository and author
[ ] Update CHANGELOG.md
[x] Test against test-suite
[x] Test against production builds (locally)
[ ] Update documentation where appropiate
[ ] Publish to npm

Note to self: Locally I have 2 failing tests,

[ ] One of which is a cross-env windows test (so the code is actually correct, but the test doesn't account for different pathing structures).
[ ] The other one seems to be related to updating chokidar past a major version. Downgrade it , re-run and then figure out if there is a path where we can upgrade past a major version.

Note to self: since the hardcoded overrideBrowserslist is working, it can now be removed. browserlists will fall back to defaults if there is no config. It's technically breaking, but also a bug, so it will be released in this minor change.

[ ] remove "hardcoded fix" from https://github.com/react-static/react-static/pull/1283/commits/7c244e45dbdbf8dd12cc4c09ad412253db869cf2, relying on auto-resolution of the config
[ ] add documentation how to resolve the mismatch between the old defaults and the new defaults, by telling users of react-static to add the config to their project.

Note to self:

[ ] investigate build on windows vs linux. Dev mode ís working, build seems to hang. Run with debug on. Probably minor cross env pathing thing.

Note to self:

[ ] can't seem to fix the super weird chokidar issue. path, the node module, for some reason, does not have the right exports. Works fine when isolated in a different project.
[ ] --debug build works. No errors! Why does it hang without this flag?

@SleeplessByte do you have access to travis? They seem to crash with every PR.. should be looked into.

@SleeplessByte do you have access to travis? They seem to crash with every PR.. should be looked into.

That's the chokidar issue. I have it locally too. I don't know yet why it's caused in the first place.
Somewhere, for some reason, path is overwritten and doesn't return the node path module.

That's the chokidar issue. I have it locally too. I don't know yet why it's caused in the first place.
Somewhere, for some reason, path is overwritten and doesn't return the node path module.

IF I have time this week, I'll try to help you debug this weird and see if I can get it working. Maybe a second pair of eyes will help.

I would appreciate it @Pixelatex . My guess it's a load, babel or mock/jest issue...

I don't know if this is new information or whatnot, but if I comment out the following lines I don't get the chokidar issue - but I do get new failures as paths aren't mocked correctly (expected).
I've seen this undefined issue with Jest when dealing with circular dependencies, but don't think this is happening here.

It is! And actually exactly matches my findings. I updated jest as well and these mocks are wrong anyway.
I'll rework that to fix chokidar, now the hanging builds without the dev flag...

@SleeplessByte how are you getting on with this? If you can give me the steps to reproduce the hanging issue I can take a look?

I'm on windows. @nddery and I think it might be a windows issue.
@alexjfno1

Running build hangs for me
Running build --debug doesn't hang for me

Perhaps it's one of the dependencies! When running without --debug and if NODE_ENV is NOT yet set, it will be set to production. Internally we use REACT_STATIC_ENV, so it doesn't matter for the react-static parts. Perhaps flicking on production is the actual issue.

If I don't figure this out tonight, I'm just going to release it with a note. I'll then work on 8.0.0 and fix these cross-env things "from scratch".

@SleeplessByte I've pulled your branch and I don't see the issue.

Pulled branch and ran yarn and yarn build
./packages/react-static/bin/react-static create and made a basic project
cd ./that-project
yarn build was successful apart from some warnings about autoprefixer and asset sizes

Using OSX High Sierra, Node 10.15.3 and NPM 6.9.0
Maybe a Windows issue?

Thank you for confirming. It is likely. I have Max, linux and windows here, so I am going to try it everywhere, confirm, release and then work on a fix.

Closed in favour of #1292


The robots.txt does not allow to index  /w/images and /w/sitemap

I think it is better when crawlers can index images (Allow: /w/thumb.php? should be included also)
If robots.txt does not allow access to /w/sitemap, and the crawler can't access the sitemap files.
Probably /w/index.php? should be allowed also.  If I'm not wrong, all HTML in  /w/index.php? URL contains the  <meta name="robots" content="noindex,nofollow"> tag, but crawlers want to be able to check them anyway. This a question for an SEO specialist. I just saw that Google's crawler complained about when it was not allowed to scan the pages.

Google likes to complain, I would keep things aligned with the official instructions https://www.mediawiki.org/wiki/Manual:Robots.txt , plus allowing crawling of /w/index.php? may induce unnecessary load to the wiki which bots trying to load various diffs and history pages which are usually resource heave
I agree that images and thumbs can be whitelisted

allowing crawling of /w/index.php? may induce unnecessary load to the wiki which bots trying to load various diffs and history pages which are usually resource heave

I agree


[v12] Edge renderer size not expanding to fit the viewport

What platform were you using when you found the bug?

React Flow / Svelte Flow version: 12.0.4
Browser and version: Brave 1.68.134 Chromium 127.0.6533.88
OS and version: Windows 10

Live code example
No response
Describe the Bug
I had this bug since upgrading to Reactflow v12
I am using Next 12.3.1 with TailwindCSS 3.2.4
The edges are only rendered on a specific space of the canvas (as seen on the screenshot below), i am using custom edge types, but even without them this bug still persists. The styles are being imported correctly. I've also tried removing both fitView and onlyRenderVisibleElements options, but without success
return (
    <>
      <FlowSidebar />

      <div className="size-full">
        <ReactFlow
          nodes={nodes}
          edges={edges}
          onlyRenderVisibleElements={true}
          nodeTypes={nodeCustomTypesList}
          edgeTypes={edgeTypes}
          onNodesChange={onNodesChange}
          onEdgesChange={onEdgesChange}
          onDrop={onDrop}
          fitView={true}
          onDragOver={onDragOver}
          onNodeClick={handleSelectNode}
          zoomOnDoubleClick={false}
        >
          <Background
            color="#bababa"
            variant={BackgroundVariant.Dots}
            size={1.5}
          />

          <Controls position="bottom-right" />
        </ReactFlow>
      </div>

    </>
  );

Steps to reproduce the bug or issue

Upgrade from v11 to v12 using nextjs 12.3.1 and tailwind 3.2.4

Expected behavior
The edges should be rendered no matter the position on screen
Screenshots or Videos

On reactflow 11:

Additional context
No response

Are you sure that overflow: visible is active on the react-flow__edges class?

You are right, it isn't. Its being overwritten by (I assume) the tailwind defaults
I was able to fix it by adding:
.react-flow__edges svg {
  overflow: visible !important;
}

To my global.css file
Thanks for the help! but I still wonder if this is the expected behavior? On reactflow v11 this change wasn't needed

Odd. Why does svg:not(:root) have a higher specificity than .react-flow__edges svg? I'll leave this issue open to see if there might be a solution for this. I suppose more people will run into this.

In React Flow 11, the selector was .react-flow .react-flow__edges (is this one stronger than .react-flow__edges svg). If so, we could strengthen the current selector by putting .react-flow in front.


Run go work sync during make gowork

This will ensure that the go.mod files in the root and in ./api will not have different versions from the same dependency. Such divergence known to cause troubles when generating manifests in different environments.

recheck

recheck

recheck


Can't start mariadb with persistent volume

Rancher versions:
rancher 2.0
Docker version: (docker version,docker info preferred)
Containers: 58
Running: 38
Paused: 0
Stopped: 20
Images: 22
Server Version: 17.12.1-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: v0.13.0 (expected: 949e6facb77383876aeff8a6944dde66b3089574)
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.15.0-23-generic
Operating System: Ubuntu 18.04 LTS
OSType: linux
Architecture: x86_64
CPUs: 32
Total Memory: 62.69GiB
Name: s3798
ID: FF7A:263Y:7NTU:PFUD:QSQX:J5RM:BT4Q:ULXV:QQWV:OIDE:U52F:POPH
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
<IP_ADDRESS>/8
Live Restore Enabled: false
Operating system and kernel: (cat /etc/os-release, uname -r preferred)
NAME="Ubuntu"
VERSION="18.04 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
Type/provider of hosts: (VirtualBox/Bare-metal/AWS/GCE/DO)
Bare-metal
Setup details: (single node rancher vs. HA rancher, internal DB vs. external DB)
single node, internal DB
Steps to Reproduce:
Try do deploy any app on the Catalog Apps section with a persistent volume.
Results:
Volume state is pending forever and app display:
Workload mariadb: ReplicaSet "mariadb-787dff4dc7" has timed out progressing.; Deployment does not have minimum availability.

hi @matheus666matheus
You need to have a storage class in your cluster.
Then you can use it as the default storage class to provision your volume dynamically
Please try

Deploy nfs-provisioner from Library catalog first (for storage class)
Deploy mariadb from Library catalog

Please let us know in a comment if you can still reproduce the issue, and we'll reopen it


ignite add should protect against packages without package.json

Currently, trying to add a package without a package.json results in a nasty error. Check and display an error if there is no package.json.
Likely around src/plugins/default/commands/add.js line 74.
@GantMan @skellock

Additionally, we should do the following:

[ ] If no index.js in the plugin, then don't require an add / remove function
[ ] If there is an index.js in the plugin, then detect if it's missing add and give a friendly error. Don't require remove.

Closed by #617


.explain() on tree-based models throws SQL SyntaxError

Steps to Reproduce:

Create a TreeNode model (example below uses Location for model name)
Perform migrations
Try to run Model.objects.all().explain()

Expected Outcome:
SQL explain output:
>>> Device.objects.all().explain()
'Sort  (cost=11.91..12.04 rows=50 width=1508)\n  Sort Key: _name\n  ->  Seq Scan on dcim_device  (cost=0.00..10.50 rows=50 width=1508)'

Actual Outcome:
psycopg2.errors.SyntaxError: syntax error at or near "EXPLAIN" / django.db.utils.ProgrammingError: syntax error at or near "EXPLAIN" error thrown:
>>> Location.objects.all().explain()
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/site-packages/django_prometheus/db/common.py", line 71, in execute
    return super().execute(*args, **kwargs)
psycopg2.errors.SyntaxError: syntax error at or near "EXPLAIN"
LINE 26:     EXPLAIN SELECT (__tree.tree_depth) AS "tree_depth", (__t...
             ^

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 817, in explain
    return self.query.explain(using=self.db, format=format, **options)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/query.py", line 575, in explain
    return '\n'.join(compiler.explain_query())
  File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1228, in explain_query
    result = list(self.execute_sql())
  File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1175, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 98, in execute
    return super().execute(sql, params)
  File "/usr/local/lib/python3.7/site-packages/cacheops/transaction.py", line 97, in execute
    result = self._no_monkey.execute(self, sql, params)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 66, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 75, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/site-packages/django/db/utils.py", line 90, in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/site-packages/django_prometheus/db/common.py", line 71, in execute
    return super().execute(*args, **kwargs)
django.db.utils.ProgrammingError: syntax error at or near "EXPLAIN"
LINE 26:     EXPLAIN SELECT (__tree.tree_depth) AS "tree_depth", (__t...

Thanks for the report. I'm not 100% sure but I have a suspicion. The CTE compiler prepends the CTE statement in as_sql, here https://github.com/matthiask/django-tree-queries/blob/f79c508f26556b59f2e144f78020aa332bd2a288/tree_queries/compiler.py#L276 – but EXPLAIN should be moved to the beginning of the whole query instead.
You could check what happens if you do something like:
If sql[0] begins with EXPLAIN, strip it and insert it before the CTE.format(**params) statement instead.
This may just be sufficient to get it working and if it does, I think this change would be potentially stable enough to ship it in a release of django-tree-queries.

Thanks for the report. I'm not 100% sure what's going on but I have a suspicion. The CTE compiler prepends the CTE statement in as_sql, here
https://github.com/matthiask/django-tree-queries/blob/f79c508f26556b59f2e144f78020aa332bd2a288/tree_queries/compiler.py#L276
– but EXPLAIN should be moved to the beginning of the whole query instead.
You could check what happens if you do something like:
If sql[0] begins with EXPLAIN, strip it and insert it before the CTE.format(**params) statement instead.
This may just be sufficient to get it working and if it does, I think this change would be potentially stable enough to ship it in a release of django-tree-queries.

Hacky but it works!
#...
        sql_explain = ""
        sql_0 = sql[0]
        if sql_0.startswith("EXPLAIN"):
            sql_0 = sql_0.split(' ', 1)[1]
            sql_explain = "EXPLAIN"
        return ("".join([sql_explain, CTE.format(**params), sql_0]), sql[1])
#...

>>> Location.objects.all().explain()
'Sort  (cost=138.85..139.00 rows=60 width=1280)\n  Sort Key: __tree.tree_ordering\n  CTE __tree\n    ->  Recursive Union  (cost=0.14..123.43 rows=101 width=84)\n          ->  Index Scan using dcim_location_parent_id_d77f3318 on dcim_location t  (cost=0.14..8.16 rows=1 width=84)\n                Index Cond: (parent_id IS NULL)\n          ->  Hash Join  (cost=0.33..11.32 rows=10 width=84)\n                Hash Cond: (t_1.parent_id = __tree_1.tree_pk)\n                ->  Seq Scan on dcim_location t_1  (cost=0.00..10.60 rows=60 width=250)\n                ->  Hash  (cost=0.20..0.20 rows=10 width=84)\n                      ->  WorkTable Scan on __tree __tree_1  (cost=0.00..0.20 rows=10 width=84)\n  ->  Hash Join  (cost=11.35..13.65 rows=60 width=1280)\n        Hash Cond: (__tree.tree_pk = dcim_location.id)\n        ->  CTE Scan on __tree  (cost=0.00..2.02 rows=101 width=84)\n        ->  Hash  (cost=10.60..10.60 rows=60 width=1212)\n              ->  Seq Scan on dcim_location  (cost=0.00..10.60 rows=60 width=1212)'


ignition operator

User Story
As a giant swarm  PE I want to ship releases faster by writing lesser code and do less PRs.
Details, Background
To facilitate the creation of releases in an automated way without too many commits necessary we want to create a k8s-cloud-config operator.
The operators responsibility is to render the cloud / ignition config  for all providers.
Suggestion:
Manage all versions in release repository in releases.yaml. Cloud config operator would determine the versions to use by the g8s release defined in the cluster CR.
Currently all versions in releases.yaml are operators (authority key). We can keep this logic if we introduce a new like versionAuthority
Questions:
Do we want to be able to influence the versions by the CloudConfig CR?
Deliverables

Deployed software
Monitoring/alerting
API changes
Public documentation
Internal documentation

Host/guest cluster

Host cluster

Provider

AWS
Azure
KVM / bare metal

Blocked by / depends on
Customers driving/requiring this
All customers will benefit from faster releases.
Remaining tasks

[ ] Add ignition-operator to control plane catalog
[ ] Add ignition-operator to the authorities in releases
[ ] Wire ignition-operator in provider operators

closing as with CAPI we will not have the current issues around k8scloudconfig anymore


[WIP] Implement the /r0/register endpoint and resource

This is some more work towards implementing the user data endpoints.
_dummy_user has also been turned into an entry into a new users dictionary, which allows us to add accounts, etc. Now of course any users added and/or modified will be wiped on the creation of a new BackgroundServer or on restarting the server from the command line, but that doesn't matter as Bluepill is a mock server and as such is not intended to permanently store any data.

[Current coverage][cc-pull] is 75.71%

Merging [#14][cc-pull] into [master][cc-base-branch] will decrease coverage by 7.77%

@@             master        #14   diff @@
==========================================
  Files             5          5
  Lines           109        140    +31
  Methods           0          0
  Messages          0          0
  Branches         15         17     +2
==========================================
+ Hits             91        106    +15
- Misses           14         30    +16
  Partials          4          4

Powered by Codecov. Last updated by [f24cc95...294eb4a][cc-compare]
[cc-base-branch]: https://codecov.io/gh/SShrike/bluepill/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/SShrike/bluepill/compare/f24cc9561a85e7aca67d36ffb2f83b3067e92890...294eb4ab3a334ab6d256c58b14e26aac9020a2ae?src=pr
[cc-pull]: https://codecov.io/gh/SShrike/bluepill/pull/14?src=pr

Everything should be ready to go, I've cleaned up the code, written the appropriate tests, and made sure everything worked correctly (to the best of my abilities).

Just added a couple of tests for areas I missed.
One included a bit of an ugly regex sadly, any suggestions on how I get rid of it?

(Github should let me reply to comments >:( )

One includes a bit of an ugly regex sadly, any suggestions for a nicer solution?

Wouldn't this be more correct and also a little nicer to read \A@([^@:]*):
You either use a regex or you do a userid[1:PositionOfFirstColon].


UX: Show suggest title button on focus

This PR shows the suggest title button only when title input is focused.
This PR also makes some improvements to ai-suggestion-dropdown's code quality.

This PR shows the suggest title button only when title input is focused.

Won't that hurt discoverability of the feature? I'd start hiding it only when the composer is empty for now, but this may be something better discussed in Discourse instead of here in a PR.


Support EdDSA for JWT

We use EdDSA for our SDK, it's smaller and efficient.

Thanks ! A really good PR.
I will publish a new version with this new feature soon.

When publish stable null safety version?

When pointycastle package will be nullsafe on stable

pointycastle (nullsafety) is now stable. I published the v2.0.0 today !

Coooool


OSD GCP setup

Description
Please explain the changes you made here.
Which issue(s) does this PR fix

Fixes #?

PR acceptance criteria
Please make sure that the following steps are complete:

[ ] GitHub Actions are completed and successful
[ ] Unit Tests are updated and passing
[ ] E2E Tests are updated and passing
[ ] Documentation is updated if necessary (requirement for new features)
[ ] Add a screenshot if the change is UX/UI related

How to test changes / Special notes to the reviewer

/test all

/ok-to-test

/test e2e-tests

/test all

/test e2e-tests

/test e2e-tests


revert version comparison updates #4173, run [pub Debian GemDownloads GitHubRelease GitHubTag PackagistVersion]

Refs #4227 #4173
This is one of the two code changes that touched a broad part of the codebase which were part of the last deployment that preceeded the resource spikes/slow response times on the badge servers.
Though we still don't know whether any of the commits in that deployment played a role, opening this in case we want to try a deployment without this change to test/validate
cc @paulmelnikow

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @calebcartwright!

  Generated by :no_entry_sign: dangerJS against 35b0f1a9d49dc455a33e8b035df9cd2ae055be04


Fix BoundingBox equality

Fixes #1626

I can't reproduce this issue locally, seems to be a flake, an interesting one though:
https://ci.appveyor.com/project/kblok/puppeteer-sharp/builds/38258335/job/74y3bkkee23q45ri#L86


Update 2021-06-29-Parallel-Python.md

Added full date range for parallel python workshop

@mkuzak

Thank you @dsmits I'll merge this :)


Job journal doxygen

One thing I couldn't figure out in Job:
signals:
    void loadArchives();

What's this used for?  Is it related to https://github.com/Tarsnap/tarsnap-gui/commit/36e12a7d76b29a6a0902128d923533b441ba906e ?

What you see in 36e12a7 is the old error prone method of loading Job archives from the PersistentStore which resulted in duplicated separate Archive objects and related issues. The new way is to signal using loadArchives() which is connected to TaskManager::loadJobArchives(). If you search for usages of that signal you'll see the various places where it is used.

Revised as suggested.


Added 'simple' template for beginners

I've been messing around with tutorial writing for beginners: http://seanhess.github.io/2015/08/04/practical-haskell-getting-started.html
I'm also running the first Utah Haskell meetup on Thursday. I've been told by more than one person I should be using stack new instead of creating the files by hand, so I'm hoping to create a template that is as simple as possible for beginners.

Never mind beginners, I'd use this all the time. :)
Question/comment: I haven't done it much, but I recently uploaded a package to Hackage with stack upload, and the cabal check process complained that I had not set a max bound on base. It might be nice to add that.

Aren't there lots of things you'd have to change before it was uploadable to hackage? I'm aiming for executables that'll probably never be uploaded. Also it's kind of redundant with stack right?

Merged, and I've given you push access to be able to make changes in the future. I do agree with @chreekat about adding an upper bound on base (even if it's a meaningless < 10 to get around the Hackage requirement of an upper bound there.

Ok, I added the same base bounds as new-template. We can just update it later. Thanks guys!

Thank you for the contribution here and the ongoing documentation, I'm very
excited about it.
On Wed, Aug 19, 2015, 6:54 PM Sean Hess<EMAIL_ADDRESS>wrote:

Ok, I added the same base bounds as new-template. We can just update it
later. Thanks guys!
—
Reply to this email directly or view it on GitHub
https://github.com/commercialhaskell/stack-templates/pull/2#issuecomment-132646944
.

@seanhess this looks great. Would it be useful if there's a library variation of the same?
At this rate, I'm going to have to rewrite the parts of our book that write Cabal files manually :smile:

Yes I think so! I haven't made enough libraries to be sure what it
requires, but I think it's a good idea.
On Wed, Aug 19, 2015 at 10:36 AM, Chris Allen<EMAIL_ADDRESS>wrote:

@seanhess https://github.com/seanhess this looks great. Would it be
useful if there's a library variation of the same?
At this rate, I'm going to have to rewrite the parts of our book that
write Cabal files manually [image: :smile:]
—
Reply to this email directly or view it on GitHub
https://github.com/commercialhaskell/stack-templates/pull/2#issuecomment-132688029
.

@seanhess I'll take a whack soon.

Hmm... Why is this defaulting to the BSD3 licence?
Certainly, cabal new's workflow in this regard leaves a lot to be desired, but if you're going to choose a default, is there a special reason why you defaulted to BSD3?

That's what the Haskell community likes, most packages on Hackage are BSD3, including GHC.

Is there a deeper reason than that?
Not that I am totally confused by open source licences. I know that the GPL causes a lot of grief, and as a safe bet I just release everything in the public domain. So please ELI5. :-)

Curiously, the public domain is actually not a safe option, since some
jurisdictions have no such concept, effectively making your work unlicensed.
One reason the BSD was chosen is that GHC is known to inline significant
chunks of code from underlying libraries. Thus, any piece of the ecosystem
has to grant just as many rights to its users as the most lenient[1] of its
dependencies. Since a lot of Hackage code is used to make proprietary
software, there was probably pressure to keep available the option of
restricting users' rights — so the entire ecosystem settled on a license
that makes it possible to do so.
[1]: Speaking from the point of view of the users here. Obviously the
reverse is true (the BSD is more lenient) from the developers' viewpoint.
The two communities are not always aligned. :)
On Thu, Aug 20, 2015 at 12:08 AM, Tebello Thejane<EMAIL_ADDRESS>wrote:

Is there a deeper reason than that?
Not that I am totally confused by open source licences. I know that the
GPL causes a lot of grief, and as a safe bet I just release everything in
the public domain. So please ELI5. :-)
—
Reply to this email directly or view it on GitHub
https://github.com/commercialhaskell/stack-templates/pull/2#issuecomment-132914207
.

Thank you @chreekat - I wish more people understood public domain doesn't work for a lot of countries.
@tebello-thejane I use BSD/MIT/Apache by default in my projects because I am mostly writing things I'd like to be able to use in my day-to-day work. I am not often writing stuff that has "end users", just fellow developers who won't be able to use it if it's GPL'd.

Makes sense.
 I've researched the BSD3 a little bit and it looks like that's the best license to allow just that.


(2041) Allow a draft organisation to be published

This adds a new "Publish this organisation" button to publish a draft version of an Organisation. The marks the latest live version as archived and then promotes the draft version to live.
Screenshots

Yeah, that did occur to me. Best to handle that once your permissions work is nailed down I reckon 👍


Memory operations should be supported via operator overrides

Instead of using regular methods, we could use something like this when modyfing the emulator memory (exemple for adding +1 to a memory address' byte):
   memory.Uint16[1234]++;

Another use case to support (pseudo code below) :
memory.UInt16[state.DS, 0xdcfe] = state.AX;

instead of:
memory.UInt16[MemoryUtils.ToPhysical(state.DS, 0xdcfe)] = state.AX;

Basic implementations :
https://github.com/OpenRakis/Spice86/commit/8322162eaf866657823a77d032c037e88751cfd4
https://github.com/OpenRakis/Spice86/commit/05c81d7036d86603298a03f9ad2c3c83f1afbefa

Try to add accessors, or two get/set properties (Uint16 and Uint8) returning the this[] operator for the corresponding access mode.


Bootstrap Pager Renderer should support getStyleClass to set pagination pagination-sm

According to the following class: extlib/lwp/product/runtime/eclipse/plugins/com.ibm.xsp.theme.bootstrap/src/com/ibm/xsp/theme/bootstrap/renderkit/html/extlib/PagerRenderer.java the renderer writes the getStyleClass to the div attribute which is the container (line 129). I would recomment to parse the getStyleClass and write alle pagination-* elements to the followd ul tag (line 136)
This allows to control the size of the pager

Christian, looking at this I think it would make sense to have all styleClass added to the class of the ul tag, not to the wrapping div.

A fix for this issue has been delivered to the latest Extlib release (9.0.1 R15)


Cache node_modules return error "A potentially dangerous Request.Path"

Required Information
Question, Bug, or Feature?
Type: Bug
Enter Task Name: CacheBeta/Cache
Environment

Agent - Hosted and Private

Private

macOS Mojave
Current agent version: '2.154.1'

Issue Description
The Post-job: CacheBeta for our node_modules produces this error message.
##[error]A potentially dangerous Request.Path value was detected from the client (:).
The running pipeline therefore fails.
Implemented the npm scenario like described here.

Tested with hosted (Hosted VS2017) and private agents (osx 2.154.1), both with the same result. Also to mention, we use an external git connection (Bitbucket Server - Public). Also also, the cache task is defined inside of a task group.
Unfortunately, I haven't tested whether continue on error helps inside of a post-job or not.
Task logs
  | Information, Processed 87263 files from /Users/slave/workspace/vsts-agent-1/vsts-agent-osx-x64-2.149.2/_work/21/s/node_modules successfully. |
  | Information, Uploading 87263 files from: /Users/slave/workspace/vsts-agent-1/vsts-agent-osx-x64-2.149.2/_work/21/s/node_modules |
  | Information, Uploaded 0.0 MB out of 696.5 MB. |
  | Information, Uploaded 584.7 MB out of 696.5 MB. |
  | Information, Uploaded 634.9 MB out of 696.5 MB. |
  | Information, Uploaded 696.5 MB out of 696.5 MB. |
  | Information, Upload completed. |
  | Information, |
  | Upload statistics: |
  | Total Content: 696.5 MB |
  | Physical Content Uploaded: 0.4 MB |
  | Logical Content Uploaded: 0.9 MB |
  | Compression Saved: 0.6 MB |
  | Deduplication Saved: 695.5 MB |
  | Number of Chunks Uploaded: 23 |
  |   |
  | Information, Using the following fingerprint argument (/Users/slave/workspace/vsts-agent-1/vsts-agent-osx-x64-2.149.2/_work/21/s/package-lock.json) as a file. |
  | Information, Generated fingerprint: 2FEB4E6C02D1B4FB42BB73619F17C6E246491535CF64816DC194B0175AE0834200 |
  | Information, Creating a pipeline cache artifact with the following fingerprint: 2FEB4E6C02D1B4FB42BB73619F17C6E246491535CF64816DC194B0175AE0834200 |
  | ##[error]A potentially dangerous Request.Path value was detected from the client (:). |
  | Finishing: CacheBeta node_modules

Troubleshooting
-/-
Error logs
##[error]A potentially dangerous Request.Path value was detected from the client (:).

Can you provide us a sample project that demonstrates the problem? Easiest option for us would be a public repo that has a package.json, package-lock.json, and azure-pipelines.yml (can be a subset of your existing files -- just enough for us to fork, run, and see the problem).
This is likely caused by a specific Node module, or a file produced when the Node module was installed, so having a sample project that we can run locally would really help.

Thanks for reporting this @fabianpittroff.  This is quite odd as we hash the key so any "weird" characters should disappear... 🤔

Getting a public repo & project we could fork would be ideal, but maybe a retry with system.debug=true could get us the needed info? Apologies as I'm not seeing the request in any of our server-side logs.

Nevermind - I was able to find what we need in our logs.  Nothing needed from you at this point @fabianpittroff !

nice - if you need more information, I could provide a test repo, hopefully with the same issue. Another thought, maybe our private npm registry (nexus) is the problem. We load some scoped npm packages from there.

We found the issue and fixed it. This should be cleared up in the next hotfix rollout.

very nice. I will test and report back as soon as the hotfix gets to our org ring.
Is it possible to see if the task has been updated with the api url of the cache task?
https://dev.azure.com/{org}/_apis/distributedtask/tasks/d53ccab4-555e-4494-9d06-11db043fb4a9
So maybe when the version changes?

@fabianpittroff - the version of the task won't change, so using this API isn't a good way to see if the fix has rolled out. @johnterickson should be able to provide a general timeline for the hot fix ..

The next few days - I've asked my devs to ping this issue when it hits your ring.

The fix was deployed. Closing the issue.


What's the difference between qfrc_applied and qfrc_passive?When i set the qfrc_passive of a slide joint to 15,the robot don't move,but if i set the qfrc_applied to 15,the robot will move quickly,why?

If i set the qfrc_applied to 15,the robot will move quickly,why?

It is not immediately obvious. I recommend inspecting data->qfrc_unc in order to understand the difference. This is the vector of all smooth dynamics forces. Both qfrc_applied and qfrc_passive are summed into qfrc_unc, which then leads to qacc_unc, the unconstrained acceleration. This should help you debug.


Fixes incorrect compatibility on Procedural Parts

https://github.com/Swamp-Ig/ProceduralParts/releases/tag/v1.1.4

Closing in favor of KSP-CKAN/NetKAN#1694


Fix a typo in pure css sliders section

@RiseLedger thanks for pointing that out. Because it's just a typo I'll fix that without needing to merge.


Assets.json file should be auto-created for new projects

If an assets.json file is not present in the service library directory, we end up creating session records within the service directory instead of in the .assets folder at the root of the repo. This makes the test proxy integration not work. The fix is to just create the assets.json file, but we should do this automatically.

/cc @kinelski

Thanks for creating this issue, we should absolutely fix this.

@kinelski please take a look at this when you get a chance.


Update the location on hash changes or local anchor links

Fixes https://github.com/mozilla/tofino/issues/1099
Signed-off-by: Victor Porof<EMAIL_ADDRESS>

Coverage decreased (-0.03%) to 34.9% when pulling f17eac7bd7d901364ebe3961e15dec1581c09483 on victorporof:hashchange-actions into b29fc3f6d19b35fa7baaa3d6ec9a378430afab22 on mozilla:master.

Coverage decreased (-0.03%) to 34.9% when pulling d3e7169592c69f954962c35357ea2dfb5501995d on victorporof:hashchange-actions into e5af840dd03e092b03e20d1d39913e4e2b4176bd on mozilla:master.

Coverage decreased (-0.04%) to 34.893% when pulling d5265574e3179fbf9c045f97b4a73b01fae0e29a on victorporof:hashchange-actions into e5af840dd03e092b03e20d1d39913e4e2b4176bd on mozilla:master.

Coverage decreased (-0.04%) to 34.893% when pulling 4357622af0611076d78ed3eb5a865bfb366f897b on victorporof:hashchange-actions into e5af840dd03e092b03e20d1d39913e4e2b4176bd on mozilla:master.


Upgrade to cypress 4.0

Summary
Upgrade to Cypress 4.0

Upgraded dependencies
Updated deprecated function
Updated reporting to include browser

Note: To run locally, make sure to follow similar steps below

Download firefox and edge
https://www.mozilla.org/en-US/firefox/new/
https://www.microsoft.com/en-us/edge

Install latest cypress (4.0.2)
npm install cypress --save-dev

Install dependencies
cd e2e
npm install

In jenkins, added new choice parameter BROWSER and updated pipeline script for mattermost-cypress,
#!/usr/bin/groovy

@Library('shared-pipelines') _

def branch = params.BRANCH
def browser = params.BROWSER

cypress_test_mattermost_com {
    BRANCH = branch
    BROWSER = browser
}

New parameter won't affect current build until this is merged. Schedule is still kept for now until new jobs below are enabled.
Created additional jobs for each browser (all are currently disabled)

mattermost-cypress-chrome - Schedule (H 6 * * * )

#!/usr/bin/groovy

stage ('Running Cypress Tests Against Chrome') {
    build job: 'mattermost-cypress', parameters: [string(name: 'BRANCH', value: params.BRANCH), string(name: 'BROWSER', value: 'chrome')]
}

mattermost-cypress-firefox - Schedule (H 12 * * * )

#!/usr/bin/groovy

stage ('Running Cypress Tests Against Firefox') {
    build job: 'mattermost-cypress', parameters: [string(name: 'BRANCH', value: params.BRANCH), string(name: 'BROWSER', value: 'firefox')]
}

mattermost-cypress-edge - Schedule (H 18 * * * )

#!/usr/bin/groovy

stage ('Running Cypress Tests Against Edge') {
    build job: 'mattermost-cypress', parameters: [string(name: 'BRANCH', value: params.BRANCH), string(name: 'BROWSER', value: 'edge')]
}

mattermost-cypress-electron - Schedule (H 0 * * * )

#!/usr/bin/groovy

stage ('Running Cypress Tests Against Electron') {
    build job: 'mattermost-cypress', parameters: [string(name: 'BRANCH', value: params.BRANCH), string(name: 'BROWSER', value: 'electron')]
}

@josephbaylon This is great! Could you clarify if we can run Edge on test server?  Note that we're running test against Cypress docker image which currently using electron on headless mode with cypress/base:10.  Based from available cypress/browser images, I'm not seeing Edge. Please help check, thanks

@josephbaylon This is great! Could you clarify if we can run Edge on test server? Note that we're running test against Cypress docker image which currently using electron on headless mode with cypress/base:10. Based from available cypress/browser images, I'm not seeing Edge. Please help check, thanks

@saturninoabril Yeah, it looks like edge is not available in the docker images, because edge is not available on linux yet (https://www.omgubuntu.co.uk/2019/11/its-official-microsoft-edge-is-coming-to-linux). We can keep the jenkins job for edge disabled until this is available.

/update-branch


sruthri is not working with some SRU servers

I've tested your module with the SRU server of the BnF (http://catalogue.bnf.fr/api/SRU), and it doesn't work.
Here is a trace:
In [8]: records = sruthi.searchretrieve('http://catalogue.bnf.fr/api/SRU', query='bib.isbn="9782412049402"')
/Users/edipretoro/projects/sruthi/sruthi/response.py:31: WrongNamespaceWarning:
                    The server has the wrong namespace for SRU,
                    it should be {http://www.loc.gov/zing/srw/} but it's currently set to {http://www.loc.gov/zing/srw/}.

  warnings.warn(

And yet, here is the equivalent working link: http://catalogue.bnf.fr/api/SRU?version=1.2&operation=searchRetrieve&query=bib.isbn="9782412049402"

Wow, I'm amazed you found this repository. Thank you for reporting and providing PRs. sruthi is certainly still in beta and has a few rough edges. Really appreciate that you took the time to contribute.

Well, I was searching for a SRU client in Python, and was happy to find your module. And when I was testing it, I found problems that I could easily solve, so I did it :smile:
As I intend to write some personal tools that needs a SRU client, tell me how I can help you to smoothen the edges of sruthi

I want to check if there is a way to find these "typos" using the explain operation (i.e. configure the client with response of the server).

For as long as I know, the SRU/SRW norm asked for the string: searchRetrieve, and I was surprised that the SRU server used in your examples was not working with that string. I've checked the searchretrieve operation with some of the SRU servers in that list and it resulted in a unsupported operation.
I didn't find any kind of reusable information in the explain operation.
My current fix was to let the programmer specify the string to use, but maybe a better solution would be to specify a profile for a server, and let the client used it.

yeah it should be searchRetrieve, it's actually a fix I already made (see #30). I guess the server I'm using accepts both, so let's use the term defined in the standard.

Fixed in release 0.1.1, see #30 for details.


Deploy without creating App Service Plan

First, thanks so much for making this!
I'm a little overwhelmed by the deploymentTemplate JSON. Is there an easy way to either:

Edit the deployment JSON to add to an existing App Service Plan, instead of creating a new one, or,
Deploy it myself by adding the repo as a "Deployment option"? And if so, are there any settings (siteName, email settings) that I need to add manually?

Thanks!

Absolutely, there's such a way.
I personally did the same thing for my blog as I had an existing app service plan. So I modified the resource template in such a way to create a Web App belonging to my existing App Service Plan.
As you said you can manually configure it as a Deployment option and technically that's what the template would do behind the scenes:

Create a Web App using the Azure Portal.
Configure the Deployment option to point to your fork of Ghost-Azure.
Enter the following App Settings: https://github.com/solvsoftware/Ghost-Azure/blob/1ab7e814bda6744d3921d8ac758a45653161b018/azuredeploy.json#L114-L121
Follow the Post-deployment configurations guide: https://www.gatevnotes.com/ghost-on-azure-app-service/#postdeploymentconfigurations


Does EmberFire make multiple calls to the server when persisting relationships?

Hi,
I have a simple hasMany --> belongsTo relationship between two models, business and employee, that I'm creating during a signup process. I've been toying around with the security rules for this to only allow a business to only be written to by an administrator of that business or only when the business currently doesn't exist (e.g. pre-signup). Here's the rule I'm using:
"businesses": {
      // allows only administrators to read and write business data if they are an admin of the business or if the business does not yet exist
      "$business_id": {
        ".write": "!data.exists() || (root.child('employees/' + auth.uid + '/business').val() === $business_id && root.child('employees/' + auth.uid + '/role').val() === 99)"
      }

Here's a the model for business:
export default DS.Model.extend({
  name: DS.attr('string'),
  employees: DS.hasMany('employee', { async: true })
});

What I'm seeing is that the employee is being properly written to Firebase, but then I'm seeing an access denied error such as FIREBASE WARNING: update at /businesses/-JnQNYZm_3gfB8L72i4d failed: permission_denied and the name of the business is not being written. However, if I remove the rule completely and allow all anyone to write to it, both the name and employee are both written. It's almost like the relationship is being persisted to the server in one call and then other properties are persisted in another call, which would explain why I'm seeing the employee property being persisted, given the rule I've defined above.
Any insights?
Best,
James

Hi James,
Yes, there are two writes, the record and the hasMany relationship links are written in two steps (see in the code here)
I believe this was to get around an issue of two clients trying to change hasMany links concurrently.
Unfortunately, it makes it difficult to do what you're trying to achieve. I'm brainstorming some ideas for a workaround..

Ah, I see. Thanks a lot, Tim. Really appreciate the help with finding a workaround.

Actually this could be a problem with there being no inverse relationship on the employee. Have you defined business: DS.belongsTo('business', { async: true }) on the employee model?
your rules seem to require that the employee must have a business link set to the business that is being written:
{
  "rules": {
    "businesses": {
      // allows only administrators of the business to read and write business data
      "$business_id": {
        ".read": "root.child('employees/' + auth.uid + '/business').val() === $business_id && root.child('employees/' + auth.uid + '/role').val() === 99",
        ".write": "root.child('employees/' + auth.uid + '/business').val() === $business_id && root.child('employees/' + auth.uid + '/role').val() === 99"
      }
    },
    // snip ...
}

belongsTo relationships are not written asynchronously so they shouldn't suffer from a race condition. Your screenshot on Stack Overflow seems to indicate that employees/simplelogin:76/business is missing. This would cause the write to be denied.

Yes, I do. Here's the code for both models for reference:
Employee
import DS from 'ember-data';

export default DS.Model.extend({
  firstName: DS.attr('string'),
  lastName: DS.attr('string'),
  business: DS.belongsTo('business', { async: true })
});

Business
import DS from 'ember-data';

export default DS.Model.extend({
  name: DS.attr('string'),
	employees: DS.hasMany('employee', { async: true })
});

Also, here are my updated security rules:
{
  "rules": {
    "businesses": {
      // allows only administrators to read and write business data
      "$business_id": {
        ".read": "root.child('employees/' + auth.uid + '/business').val() === $business_id && root.child('employees/' + auth.uid + '/role').val() === 99",
        ".write": "auth !== null && (!data.exists() || (root.child('employees/' + auth.uid + '/business').val() === $business_id && root.child('employees/' + auth.uid + '/role').val() === 99))"
      }
    },
    "employees": {
      // only allow employees to read/write their own data or the admin of the business they belong to
      "$employee_id": {
        ".read": "auth.uid === $employee_id || (root.child('employees/' + auth.uid + '/role').val() === 99 && root.child('businesses/' + (root.child('employees/' + auth.uid + '/business').val()) + '/employees/' + $employee_id).exists())",
        ".write": "auth !== null && (!data.exists() || (auth.uid === $employee_id || (root.child('employees/' + auth.uid + '/role').val() === 99 && root.child('businesses/' + (root.child('employees/' + auth.uid + '/business').val()) + '/employees/' + $employee_id).exists())))"
      }
    }
  }
}

As for business not existing in that screenshot, you're correct. I was toying around with the way I was saving the models and the way shown in the code on stackoverflow ended up not saving the business. Here's the code I'm using now, which results in the following: data snapshot
// first, create the user account to be the admin of the business
_this.firebase.createUser({
  email: _this.get('email'),
  password: _this.get('password')
}, function(error, userData) {

  if (error) {
    flashMessages.warning(error);
  } else {

    // authenticate the user and log them in
    _this.get('session').authenticate('authenticator:firebase', {
      'email': _this.get('email'),
      'password': _this.get('password')
    }).then(function() {

      // create the business record
      var business = _this.store.createRecord('business', {
        name: _this.get('businessName')
      });

      // create the employee record and associate the firebase uid
      var employee = _this.store.createRecord('employee', {
        id: userData.uid,
        firstName: _this.get('firstName'),
        lastName: _this.get('lastName'),
      });

      business.get('employees').then(function(employees) {
        employees.addObject(employee);
        employee.save().then(function() {
          business.save();
        });
      });

    }).catch(function(error) {
      flashMessages.warning(error);
    });

  }

}); // createUser

Thanks again, Tim!

Seems this was mostly a security rule issue. You were requiring a role = 99 in the rules, but were never setting one. This works:
// models/employee.js
import DS from 'ember-data';

export default DS.Model.extend({
  firstName: DS.attr('string'),
  lastName: DS.attr('string'),
  business: DS.belongsTo('business', { async: true }),
  role: DS.attr('number') // <--- added
});

And in the controller:
// create the business record
var business = this.store.createRecord('business', {
  name: this.get('businessName')
});

// create the employee record and associate the firebase uid
var employee = this.store.createRecord('employee', {
  id: authData.uid,
  firstName: this.get('firstName'),
  lastName: this.get('lastName'),
  role: 99 // <--- added
});

business.get('employees').addObject(employee);
return employee.save().then( () => business.save() );

No more error and the name is written correctly:

Thanks, @tstirrat! As mentioned in my comment on StackOverflow, sorry for wasting your time with something so trivial. I did originally have the role attribute in the model, but removed it as I was messing around with things. I was so hung up on thinking that it was failing because the second write was causing the !data.exists() rule to fail that I completely forgot about it. I tested it and things are now working. Thanks again!

Not a problem. The multiple writes could in fact cause problems with security rules in the case that there are a large amount of hasMany links that get written too late. e.g. if you were checking security through  the hasMany side - preventing writes if business.employees.<employee_id> doesn't exist - this could cause a problem if you were adding two employees and the current employee isn't the very first link to be written.
It's given me some insight into possible edge cases. I'm glad it's working for you now :)


ERM - Report 'eusage_counter_rpt_pr' for Metadb

Closes #765
This report is intended to contain data from the FOLIO app eUsage. In this case, the report contains only data for Platform Master Reports (PR). The required attributes can be found at https://medialibrary.projectcounter.org/file/The-Friendly-Guide-for-Librarians . In addition to this attributes there are attributes to the downloaded COUNTER report.
For performance reasons, the arrays are read based on positions.

Report runs great. I have a question. There is still commented out section of the report, should it still be left commented out or need to be deleted?

Thank you @natalyapik . This part remains commented out and is only used if you want to search for a time period. This was also done for the other queries for eUsage COUNTER reports https://github.com/folio-org/folio-analytics/tree/main/sql_metadb/report_queries/erm/eusage_counter_reports. :-)


AWS XRay compatibilities

I just thought it might be useful for folks to be know that the kspan trace IDs are currently not compatible with AWS XRay: https://github.com/open-telemetry/opentelemetry-collector-contrib/discussions/5257#discussioncomment-1343360

Thanks for the report.
Shouldn’t that be filed as an XRay incompatibility with OpenTelemetry?

It is feasible to change the scheme kspan uses, at the cost of losing trace continuity across a restart of kspan. Or add some persistence mechanism to cover the restart.

Thanks for the report.
Shouldn’t that be filed as an XRay incompatibility with OpenTelemetry?

I updated the title.

It is feasible to change the scheme kspan uses, at the cost of losing trace continuity across a restart of kspan. Or add some persistence mechanism to cover the restart.

Yes, it's neat to have restart persistence by the virtue of consistent hashing. Maybe someone could think of this as a separate mode. By the way, the timestamps seem to be mandated by the W3C spec also...


Redis of edgexfoundry snap can't persist on disk

🐞 Bug Report
Affected Services

 The issue is located in:
snap/snapcraft.yaml
Is this a regression?

 Yes, the previous version in which this bug was not present was `v1.2.2-dev.102`
Description and Minimal Reproduction
From v1.2.2-dev.103, in snap app redis server, command uses environment  REDIS_SAVE_OPTS as the option. But when redis server is running, I use redis-cli config get save to get the save config,  and the value is empty. So, redis server cannot persist on disk.
🔥 Exception or Error

redis server cannot persist on disk.

🌍  Your Environment
Deployment Environment:  Ubuntu Core
EdgeX Version: v1.2.2-dev.106
Anything else relevant?

@tonyespy @anonymouse64 - can you confirm this is an issue?  If so, target for Ireland?


Cannot debug mocha tests in VS 2017

Recently I've got new PC to work with clean Windows 10 installation. I installed VS 2017 with Node.js and Python workloads only. In that configuration I cannot start debugger for mocha tests. Debugger works fine if launched in standard mode (F5).
Expected Behavior
Debug mode should work for mocha tests too.
Actual Behavior
Debugger does not start when trying to debug mocha test.
output:
[10/2/2017 10:45:36 AM Informational] ========== Discover test finished: 5 found (0:00:01.0859653) ==========
[10/2/2017 11:02:06 AM Informational] ------ Run test started ------
[10/2/2017 11:02:08 AM Error] An exception occurred while invoking executor 'executor://nodejstestexecutor/v1': Could not load file or assembly 'Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
[10/2/2017 11:02:08 AM Informational] ========== Run test finished: 0 run (0:00:02.034671) ==========

NTVS Version: <IP_ADDRESS> (About Microsoft Visual Studio window), 1.4.10602.1 (Extensions and Updates window) - version mismatch is confusing a bit
Visual Studio Version: 15.3.5 (Enterprise 2017)
Node.js Version: 6.11.3

Steps to Reproduce

Navigate to Test Explorer
Select any mocha test and from context menu choose: "Debug Selected Tests"

Thanks this should be fixed in Visual Studio 2017 Update 4, which is due out this week. (Hopefully).

@paulvanbrenk I am using VS Community 2017 15.5.2 and my mocha testes aren't still not showing in the Test Explorer.
Have you any idea why?

Did you add the mocha tests using the Item Template from the "add new item" menu? And can you share your project file, and package.json

@paulvanbrenk I haven't this option on my installation VS2017 Community. Could you tell me how to enable this template?

Those are the project templates, I was looking for the item templates, on the project node, add new item.

Or you can change the test framework in the properties of a .js file:

Thanks @paulvanbrenk but I didn't have this templates.  Maybe I should download it from the store. I also added mocha to TestFrmework but it does not make the test appear into the Test Explorer. My new try is using VS Community 2015. Wish me luck,


[Maps - Data Registry] REST API Review

Service name: Azure Maps Data Registry Service
Key contact for the review: Eva Ou<EMAIL_ADDRESS>Whether this is a new or existing API: new version of an existing API
Whether or not your service already been deployed: not deployed
A brief description of the material to be reviewed/changed: New version of data registry API (old name: data) in Azure Maps
PR: https://github.com/Azure/azure-rest-api-specs/pull/19272

API Stewardship Board Review: 23-Jun-22
Discussion / Notes
Actions
References
Meeting Chat
Meeting Recording
Helpful Documentation

Azure API REST Documentation
Considerations for Service Design
REST API Guidelines
OpenAPI Style Guidelines
Breaking Changes

Note: The Teams channel is internal MS.


profile picture not compatible with data browser?

I edited my profile picture using https://dev-generator.inrupt.com/welcome# but it is not showing up on https://michielbdejong.inrupt.net/profile/card#me?
It seems to be using http://xmlns.com/foaf/0.1/img, I'm trying to see what the databrowser uses, but can't really tell from https://github.com/solid/solid-panes/blob/master/profile/profilePane.js

It seems that the databrowser uses http://www.w3.org/2006/vcard/ns#hasPhoto instead of http://xmlns.com/foaf/0.1/img.

This issue was resolved in the recent 0.5.1 release. The predicates have been synchronized.


[Suggestion]Visual(chams):D

Add Chams Alpha And Overlay chams alpha too so fware can be rijin free version :trollface: https://youtu.be/_bUf_OmySqU?t=398

already exists.

when dude,can u explain me lol(im dumb kek)

glow modifier or whatever it is in chams, and you can change the alpha of the chams material by selecting the colour, right clicking, and clicking show alpha bar.


Obtaining redirected location

Moved here from https://github.com/http4s/blaze/issues/55
@rossabaker Good point! Unfortunately, we cannot use HEAD by default in FollowRedirect as the website we are requesting may have a body and does not redirect. If we used HEAD, the user will not be able to access the body then.
One option would be to make this behaviour more explicit by adding a general flag or combinator discardBody that will use HEAD for the current request and, as you suggested, disregard the body if the server responds with one.
My second proposal would be to add functionality to obtain the response headers, without the need to create a new service (see my example).

So you would like direct access to prepareLoop so you can have access to the indeterminate response? And redirectUri as function on the object so you can get the new URI.

If I understand this correctly on rereading, the reason this can't be done with the fetch primitive is that we don't have access to the current request.
I hate to complicate the client itself to support this.  We could make the redirect middleware stuff the current request into a response attribute, but that seems like a hack.  Open to clean solutions here.


Documentation updates

This is my updates to the documentation to reflect my more major changes. There are a number of TODOs in there still, will continue to update but wanted to have this PR active for easier commenting from everyone.
You can see the mdbook version of these at https://newaetech.github.io/sonata-system/ which is easier to review.

Also - I can squash all these commits into a single one as the commit messages were mostly in-progress work. I didn't want to do that before reviewing though as it may be helpful not having it all squashed to see the specific changes.

Thanks all - I'll get these fixed up for tonight my time (aka probably tomorrow for you) & squash it down to a nice single commit once I do. Will flag it back once I think it's ready!

It has been done. https://newaetech.github.io/sonata-system/ was built successfully from our repo, so can use that for checking any changes.


graph/coloring: new package providing graph coloring functions

Please take a look.
/cc @mattConn

Codecov Report

Merging #1615 (aa50e37) into master (ccc0da2) will decrease coverage by 0.12%.
The diff coverage is 83.92%.

@@            Coverage Diff             @@
##           master    #1615      +/-   ##
==========================================
- Coverage   73.04%   72.91%   -0.13%
==========================================
  Files         498      483      -15
  Lines       58813    58444     -369
==========================================
- Hits        42961    42617     -344
+ Misses      13424    13417       -7
+ Partials     2428     2410      -18

Impacted Files
Coverage Δ

graph/coloring/coloring.go
83.92% <83.92%> (ø)

internal/asm/c64/conj.go
0.00% <0.00%> (-100.00%)
:arrow_down:

optimize/listsearch.go
72.22% <0.00%> (-1.86%)
:arrow_down:

graph/iterator/nodes_map_safe.go

mat/offset_appengine.go

internal/asm/f32/ge_noasm.go

internal/asm/f64/l2norm_noasm.go

internal/asm/f64/stubs_noasm.go

internal/asm/f64/axpy.go

internal/asm/c128/stubs_noasm.go

... and 10 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ccc0da2...aa50e37. Read the comment docs.

Looks interesting. I'll wrap up my review of urna.go in commit 3 of #1524 and then I will look through this.

This is ready. There is another solver that is worth including, but it needs more investigation.
The golangci-lint failure can be ignored.

I'll look at this after #1617 since that one is smaller and has a formal request.

Just for an update, I am actively reviewing this now.

Done

The DsaturExact code is quite slow at the moment (unreasonably so). I've looked into this and it comes down to the default approach of using maps to hold edge and node lists, and colourings. After this is merged, I'll file an issue to make an internal representation based on bitmaps for edge and node lists within graphs and slices for colourings. The optimisation is likely to make the code considerably less readable, so I want to get the base code in first.
I also have a novel algorithmic optimisation for DsaturExact that I've been exploring. That is ready to go as soon as this is merged and gives quite impressive speed-ups for difficult graphs. The two approaches together should make this implementation competitive.

For some kind of an update since it has been a while, I am almost done looking over Dsatur in coloring.go on the first commit. I am presently tracing this function and working on matching it with the steps outlined in Brélaz's text.

Thanks for the review.


HAND

For HAND,
a. Send HID object, numpy buffer (of mp.Array() origin), and a shared flag (i.e. poison pill for the remote process)
- dev.stop() sets the shared flag to True, ending the remote process
- dev.start() resets the shared flag, dumps 40 recent values from the buffer, fills the numpy array with np.nans
- dev.read() returns a copy of the numpy buffer, and clears it
- dev.clear() sets all vals in buffer to np.nan
- dev.write() WILL send bytes to HID (use Queue?). Implement once we have the other side ready...
- dev.close() calls _hid.close()

Most of this is covered as of ab72bf1e5eca042110ef42bd84bd005e95ed82f6.

Not sure how to do timestamping. It would be nice to use the same relative time between the main process and the worker process, but I'm not sure if the following correction is correct/sufficient:
import multiprocessing as mp
from psychopy import core

def worker(st, ct):
    for ii in range(20):
        print(st + str(ct + core.getTime()))
        core.wait(0.1)

if __name__=='__main__':
    core.wait(5)
    ct = core.getTime()
    p = mp.Process(target=worker, args=('worker: ', ct))
    p.start()
    worker('main: ', 0)
    p.join()

Tried something different. The idea is that everyone shares the time determined by time.value, which is continuously polled by worker_timer. I think it gives everyone the same time, but it does take up an extra process...
import ctypes
import multiprocessing as mp
from psychopy import core

def worker(st, time):
    timer = core.Clock()
    timer.reset()
    timer.add(0.1)
    for ii in range(100):
        print(st + str(time.value))
        while timer.getTime() < 0:
            pass
        timer.add(0.1)

def worker_timer(time, pp):
    while pp.value:
        time.value = core.getTime()

if __name__=='__main__':
    time = mp.Value('d', 0)
    poisonpill = mp.Value(ctypes.c_bool)
    poisonpill.value = True
    proc_remote = mp.Process(target=worker, args=('worker: ', time))
    proc_timer = mp.Process(target=worker_timer, args=(time, poisonpill))

    proc_timer.start()
    core.wait(0.5) # give time for timer process to start
    proc_remote.start() # start remote process
    core.wait(0.1)
    worker('main: ', time) # start main process
    proc_remote.join()
    poisonpill.value = False # after main is done, end timer

To wrap up our custom timer in a class:
import ctypes
import multiprocessing as mp
from psychopy.core import getTime

class BlamTimer(object):
    def __init__(self):
        self.time = mp.Value('d', 0)
        self.poison_pill = mp.Value(ctypes.c_bool)
        self._proc = None
    def start(self):
        self.poison_pill = True
        self._proc = mp.Process(target=self.worker, args=(self.time, self.poison_pill))
        self._proc.start()
    def stop(self):
        self.poison_pill = False
    def now(self):
        return self.time.value
    def worker(self, time, pp):
        while pp.value:
            self.time.value = getTime()

Turns out we can pass around a monotonicClock (or similar) and share the time correctly.
import ctypes
import multiprocessing as mp
from psychopy import core

def worker(st):
    timer = core.Clock()
    timer.reset()
    timer.add(0.1)
    for ii in range(10):
        print(st + 'a' + str(core.getTime()))
        while timer.getTime() < 0:
            pass
        timer.add(0.1)

def worker_remote(st, mc):
    print(mc._timeAtLastReset)
    core.wait(1)
    timer = core.Clock()
    timer.reset()
    timer.add(0.1)
    for ii in range(10):
        print(st + 'a' + str(mc.getTime()))
        while timer.getTime() < 0:
            pass
        timer.add(0.1)

if __name__=='__main__':
    mc = core.monotonicClock
    print(mc._timeAtLastReset)
    proc_remote = mp.Process(target=worker_remote, args=('worker: ', mc))
    proc_remote.start() # start remote process
    worker('main: ') # start main process


Update grafana and other prometheus operator sub components

Update prometheus-operator sub components

Update kube-state-metrics to 2.9.1 application version 1.9.7.
Update prometheus-node-exporter to 1.11.2 application version
1.0.1. This chart is sourced from
https://github.com/prometheus-community/helm-charts.
Update grafana to 5.6.8 application version 7.2.0. This chart is
sourced from https://github.com/grafana/helm-charts.

prometheus-operator: Enable filesystem directory structure
This commit enables the grafana to replicate the filesystem directory
structure in the dashboard.
If there are dashboards are laid out in the following structure, then in
dashboard also you can see this layout:
.
├── app1
│   └── dashboard.json
└── app2
    └── dashboard.json

2 directories, 2 files

prometheus-operator: Add conversion tests

This commit adds new conversion test to verify if the
foldersFromFilesStructure is put in the configmap correctly.

TODO:

[x] Write Tests.
[x] Format this description.
[x] The Grafana chart and prometheus-node-exporter charts are sourced from different place. Add this in commit.

BTW, should we upgrade to https://github.com/prometheus-community/helm-charts/tree/main/charts/kube-prometheus-stack and send those patches upstream?

@johananl @invidian PTAL


Add support to Bun Package Manager

main title talks for itself.
making a simple case-study, could seen that bun package manager has growing up in a large scale.
it's nice to add support for them.
fresh tech to fresh stack.
this opinion it's not only of my own.
att.

here's one more bun lover too🙋♂💜

Memory usage and cold start time are essential since we are using serverless architecture.
It seems like Nodejs is still great for this case.
Here's an example article: https://5ly.co/blog/bun-vs-node-comparison/#bun-vs-nodejs-benchmarks-comparison
We migrated to pnpm from yarn from skeet v2.
I am always happy to integrate better techs!
Let's see how Bun is growing 👀


Reload graphs in the "monitoring" screen does not work

When a range of time is selected in the time picker and you click on "Reload graphs" it does nothing.

Zabbix does not allow to do filtering by a period of time. We will check other options in order to reduce the amount of data.

fixed


Configure tests with gclados

well, it i works, then it good
is 'lib/libgclados.a' need to be there ? Compiler automatically do not generate it ?


Remove my story into teaching section

This PR follows on from #2563
Trello card
https://trello.com/c/MYSl7HO4/3267-remove-my-story-and-integrate-into-the-blogs
Context
Some of the 'my story into teaching' posts have been moved to the blog (#2563) and the section can be decomissioned.

Need to update the link on the 404 page @peteryates - currently still going to /my-story-into-teaching?

Thanks @peteryates - those two changes look good to me
Happy to approve this once @EllieNodder has cast her eye over it on Monday


Double the capacity when BlobVec is full

Objective

Fixes #10797

Solution

Double the capacity of a full BlobVec before pushing a new element.

This solution won't fix most of the issues.
In many cases, bevy calls BlobVec::reserve_exact which has exactly the same problem, and after reserve_exact, push won't double the capacity.
Proper fix should be (basically, copy Vec behavior):

add reserve function (in addition to reserve_exact) which would double the capacity (or maybe do something smarter, see Vec)
call reserve where reserve_exact is called
push should just call reserve(1) (instead of reserve_exact(1))

Sure. I will leave push mostly unchanged and implement the reserve function instead. At this point I'm not able to come out with a fancy solution. My reserve function basically just ensures the capacity will at least double if there is no enough space.

Overall, looks good.

If we want to make this code more perfect, further change might be this: split reserve function into reserve and do_reserve.
reserve body would be this:
#[inline]
fn reserve(&mut self, additional: usize) {
  if self.cap - self.len < additional {
    self.do_reserve(additional);
  }
}

#[cold]
fn do_reserve(&mut self additional: usize) { ... }

The idea is this. push function is marked #[inline], and it should be fast. reserve is not marked inline, so it might not be inlined into push even if in most cases this function is simple integer subtraction and comparison.
If we mark reserve #[inline] as is, reserve will be inlined into push, but resulting push function might become too large to be inlined into code that calls push.
Splitting reserve function fixes this issue.

benchmarks are a bit noisy but we do win in the big sparse_set case
$ critcmp before after
group                                     after                                  before
-----                                     -----                                  ------
add_remove/sparse_set                     1.00   494.9±11.07µs        ? ?/sec    1.02   504.0±31.49µs        ? ?/sec
add_remove/table                          1.02   766.3±14.54µs        ? ?/sec    1.00   753.0±14.05µs        ? ?/sec
add_remove_big/sparse_set                 1.00   497.3±11.90µs        ? ?/sec    1.08   535.2±76.61µs        ? ?/sec
add_remove_big/table                      1.01  1751.1±35.25µs        ? ?/sec    1.00  1726.0±23.07µs        ? ?/sec
added_archetypes/archetype_count/100      1.03     38.0±0.24µs        ? ?/sec    1.00     36.9±0.18µs        ? ?/sec
added_archetypes/archetype_count/1000     1.02    403.9±5.28µs        ? ?/sec    1.00    395.1±2.28µs        ? ?/sec
added_archetypes/archetype_count/10000    1.02      7.1±0.17ms        ? ?/sec    1.00      7.0±0.22ms        ? ?/sec
added_archetypes/archetype_count/200      1.00     73.5±0.65µs        ? ?/sec    1.00     73.6±0.51µs        ? ?/sec
added_archetypes/archetype_count/2000     1.02   831.5±10.76µs        ? ?/sec    1.00    816.4±8.05µs        ? ?/sec
added_archetypes/archetype_count/500      1.02    197.7±1.11µs        ? ?/sec    1.00    194.4±1.10µs        ? ?/sec
added_archetypes/archetype_count/5000     1.02      2.7±0.08ms        ? ?/sec    1.00      2.6±0.07ms        ? ?/sec
insert_simple/base                        1.01    251.4±3.25µs        ? ?/sec    1.00    247.8±2.45µs        ? ?/sec
insert_simple/unbatched                   1.01   581.4±19.07µs        ? ?/sec    1.00   578.4±14.18µs        ? ?/sec
no_archetypes/system_count/0              1.00      4.7±0.05ns        ? ?/sec    1.00      4.7±0.03ns        ? ?/sec
no_archetypes/system_count/100            1.00   838.1±13.51ns        ? ?/sec    1.00   836.7±10.64ns        ? ?/sec
no_archetypes/system_count/20             1.00    163.3±1.67ns        ? ?/sec    1.04    169.6±6.60ns        ? ?/sec
no_archetypes/system_count/40             1.01    347.0±5.50ns        ? ?/sec    1.00   343.8±10.40ns        ? ?/sec
no_archetypes/system_count/60             1.00    503.1±9.43ns        ? ?/sec    1.01    506.0±8.72ns        ? ?/sec
no_archetypes/system_count/80             1.01    678.1±5.77ns        ? ?/sec    1.00    674.6±9.58ns        ? ?/sec

one run was particularly harsh on these two benches:
group                                     after                                  before
-----                                     -----                                  ------
insert_simple/unbatched                   1.09   629.3±14.79µs        ? ?/sec    1.00   578.4±14.18µs        ? ?/sec
no_archetypes/system_count/40             1.28    440.7±1.86ns        ? ?/sec    1.00   343.8±10.40ns        ? ?/sec

growing by 1.5x instead of 2x looks pretty much the same
$ critcmp before after
group                                     after                                  before
-----                                     -----                                  ------
add_remove/sparse_set                     1.00   486.2±12.53µs        ? ?/sec    1.04   504.0±31.49µs        ? ?/sec
add_remove/table                          1.00   751.5±15.29µs        ? ?/sec    1.00   753.0±14.05µs        ? ?/sec
add_remove_big/sparse_set                 1.00   499.5±12.71µs        ? ?/sec    1.07   535.2±76.61µs        ? ?/sec
add_remove_big/table                      1.02  1768.9±29.77µs        ? ?/sec    1.00  1726.0±23.07µs        ? ?/sec
added_archetypes/archetype_count/100      1.02     37.8±0.62µs        ? ?/sec    1.00     36.9±0.18µs        ? ?/sec
added_archetypes/archetype_count/1000     1.02    402.5±3.34µs        ? ?/sec    1.00    395.1±2.28µs        ? ?/sec
added_archetypes/archetype_count/10000    1.00      7.0±0.20ms        ? ?/sec    1.00      7.0±0.22ms        ? ?/sec
added_archetypes/archetype_count/200      1.02     74.7±0.37µs        ? ?/sec    1.00     73.6±0.51µs        ? ?/sec
added_archetypes/archetype_count/2000     1.02    830.4±9.54µs        ? ?/sec    1.00    816.4±8.05µs        ? ?/sec
added_archetypes/archetype_count/500      1.02    198.0±1.64µs        ? ?/sec    1.00    194.4±1.10µs        ? ?/sec
added_archetypes/archetype_count/5000     1.02      2.6±0.06ms        ? ?/sec    1.00      2.6±0.07ms        ? ?/sec
insert_simple/base                        1.00    245.4±4.32µs        ? ?/sec    1.01    247.8±2.45µs        ? ?/sec
insert_simple/unbatched                   1.00   576.1±15.01µs        ? ?/sec    1.00   578.4±14.18µs        ? ?/sec
no_archetypes/system_count/0              1.00      4.7±0.03ns        ? ?/sec    1.00      4.7±0.03ns        ? ?/sec
no_archetypes/system_count/100            1.02    850.8±6.63ns        ? ?/sec    1.00   836.7±10.64ns        ? ?/sec
no_archetypes/system_count/20             1.00    168.6±6.18ns        ? ?/sec    1.01    169.6±6.60ns        ? ?/sec
no_archetypes/system_count/40             1.00    342.3±9.41ns        ? ?/sec    1.00   343.8±10.40ns        ? ?/sec
no_archetypes/system_count/60             1.00   500.7±10.08ns        ? ?/sec    1.01    506.0±8.72ns        ? ?/sec
no_archetypes/system_count/80             1.01    678.4±7.95ns        ? ?/sec    1.00    674.6±9.58ns        ? ?/sec


Add declarations for longintrepr.h

longintrepr.h is not part of Python's official API, but it is still useful to implement conversion between Python integers and other multi-precision integer types. This is used by SageMath for example to implement conversion to/from GMP integers for example.
Note that the ctypedef class __builtin__.long [object PyLongObject] trick doesn't work because Cython uses long for the C type long, not the Python type. So, I had to resort to an uglier solution.

Tests?

Tests?

Thanks for the hint. This took quite a few iterations to get right (especially on Python 2.6), but now it works.
If you accept this pull request, it will be used by SageMath, which would be an additional test.

Thanks. Looks good, merging now.


Implement dBot (implement blackjack, currency and more...)

Implement the old bot version with cBot.ts (original source)

[ ] Create a new repo
[ ] Initialize the repo with the base code for cBot.ts

Implement on top of cBot.ts

[ ] Currency
[ ] Black-jack game

@EdgarMtz00 we can start the development of this when the embbed form api is ready (we should called something more generic)


System Freezing When Running More Than 3 RGA Threads on Orange Pi 5 (RK3588S)

I am developing a GStreamer-based application on the Orange Pi 5 (RK3588) that runs multiple GStreamer pipelines in parallel, each on a different thread. The pipelines are designed to handle video streams from different RTSP sources, utilizing the Rockchip RGA for hardware-accelerated video processing.
When running up to 3 threads, the system functions as expected. However, when I attempt to run more than 3 threads, the system begins to log repeated RGA_BLIT failure messages and eventually freezes, requiring a hard reset. Below is the error message encountered:
RgaBlit(1485) RGA_BLIT fail: Invalid argument
RgaBlit(1486) RGA_BLIT fail: Invalid argument
handl-fd-vir-phy-hnd-format[0, 209, (nil), (nil), 0, 0]
rect[0, 0, 1920, 1080, 1920, 1088, 2560, 0]
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1]
handl-fd-vir-phy-hnd-format[0, 0, 0xfffef00ee9f0, (nil), 0, 0]
rect[0, 0, 640, 480, 640, 480, 512, 0]
f-blend-size-rotation-col-log-mmu[0, 0, 0, 0, 0, 0, 1]

Here is my sample GStreamer pipeline:
gst-launch-1.0 rtspsrc location=rtsp://<URI> ! queue ! rtph264depay ! h264parse ! mppvideodec ! rgaconvert ! videorate ! video/x-raw,format=RGB,width=640,height=480,framerate=15/1 ! fakesink

Expected Behavior: The system should be able to handle multiple threads utilizing the RGA without freezing or logging continuous errors.
Actual Behavior: When more than 3 threads are run, the system logs repeated RGA_BLIT errors and eventually freezes.
Environment:

Board: Orange Pi 5 (RK3588S)
OS: Ubuntu Rockchip 22.04

Did you manage to solve this issue? I have encountered the same problem.


Fix: set java default class for scalar to Object

related #3929
For scalars that have not been configured with class mapping, the default behavior is to set it to any which works for typescript but in java default type should be Object.
I have updated the function buildScalars to accept another parameter : defaultScalarType. It's set to any by default, but for java, it's set to Object. It's likely that other package also need to be updated.

Perfect! Thank you so much @ducthienbui97 !


Az cli task fails with "[error]Argument list too long"

az feedback auto-generates most of the information requested below, as of CLI version 2.0.62

Related command
I have whitelist the IP of my DevOps Host to be able to use it call my Function App.
Describe the bug
When trying to whitelist the host my azcli task in my DevOps pipeline fails intermittently, without any clear indication why.
This is the output I get:
##[debug]Evaluating: SucceededNode()
##[debug]Evaluating SucceededNode:
##[debug]=> True
##[debug]Result: True
Starting: Whitelist this host IP
==============================================================================
Task         : Azure CLI
Description  : Run Azure CLI commands against an Azure subscription in a PowerShell Core/Shell script when running on Linux agent or PowerShell/PowerShell Core/Batch script when running on Windows agent.
Version      : 2.198.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-cli
==============================================================================
##[debug]Using node path: /home/vsts/agents/2.202.1/externals/node10/bin/node
##[error]Argument list too long
##[debug]System.ComponentModel.Win32Exception (7): Argument list too long
   at System.Diagnostics.Process.ForkAndExecProcess(String filename, String[] argv, String[] envp, String cwd, Boolean redirectStdin, Boolean redirectStdout, Boolean redirectStderr, Boolean setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdinFd, Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoExec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at Microsoft.VisualStudio.Services.Agent.Util.ProcessInvoker.ExecuteAsync(String workingDirectory, String fileName, String arguments, IDictionary`2 environment, Boolean requireExitCodeZero, Encoding outputEncoding, Boolean killProcessOnCancel, InputQueue`1 redirectStandardIn, Boolean inheritConsoleHandler, Boolean keepStandardInOpen, Boolean highPriorityProcess, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Services.Agent.ProcessInvokerWrapper.ExecuteAsync(String workingDirectory, String fileName, String arguments, IDictionary`2 environment, Boolean requireExitCodeZero, Encoding outputEncoding, Boolean killProcessOnCancel, InputQueue`1 redirectStandardIn, Boolean inheritConsoleHandler, Boolean keepStandardInOpen, Boolean highPriorityProcess, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Services.Agent.Worker.Handlers.DefaultStepHost.ExecuteAsync(String workingDirectory, String fileName, String arguments, IDictionary`2 environment, Boolean requireExitCodeZero, Encoding outputEncoding, Boolean killProcessOnCancel, Boolean inheritConsoleHandler, CancellationToken cancellationToken)
   at Microsoft.VisualStudio.Services.Agent.Worker.Handlers.NodeHandler.RunAsync()
   at Microsoft.VisualStudio.Services.Agent.Worker.TaskRunner.RunAsync()
   at Microsoft.VisualStudio.Services.Agent.Worker.StepsRunner.RunStepAsync(IStep step, CancellationToken jobCancellationToken)
Finishing: Whitelist this host IP

To Reproduce
pool:
vmImage: ubuntu-latest
jobs:

job: jobName
steps:

checkout: self
task: AzureCLI@2
displayName: 'Whitelist this host IP'
name: whitelistHost
inputs:
azureSubscription: mySubscription
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
Write-Host 'Fetching my IP ...'
$pages = "https://api.ipify.org/","https://ipinfo.io/ip","https://ifconfig.me/ip","https://ident.me"
foreach ($page in $pages)
{
try {$myIP = (Invoke-WebRequest -uri "$page").Content
az functionapp config access-restriction add -g myRG -n myAFA `
--rule-name devops-agent --action Allow --ip-address $myIP --priority 50
break}
catch {Write-Host "Error setting IP"}
finally {Write-Host "Done setting IPs"}
}

Expected behavior
This normally works and sets the first IP it gets. I have multiple pages to increase my chances that I get an IP.
Any advice on how to fix this is highly appreciated. Or also to help me figure out what I am doing wrong :-)

route to CXP team

Update: I found the issue myself.
In a previous step, I pulled the content of a .json file into an env variable. It turned out that this env variable was just small enough to fit into the available memory pool, but the subsequent command didnt fit anymore. Thus I am now using a smaller .json to fill my env variable in the previous step.
The reference that helped me find it is this: https://stackoverflow.com/questions/28865473/setting-environment-variable-to-a-large-value-argument-list-too-long


Does not work with non-strict CommonJS modules

I created a gist with all of the relevant information:
https://gist.github.com/Pauan/6b58b7fca0ed0648a8f4
The file bar.js is the entry point, and output.js is the compiled bundle.
When using the rollup-plugin-commonjs plugin, it converts foo.js into an ES6 module and inserts it into the bundle.
The problem is that the bundle contains 'use strict'; at the top, which causes the following error in Chrome:
Uncaught TypeError: Cannot assign to read only property 'name' of function 'function foo() {}'

Essentially, the issue is that foo.js relies upon non-strict behavior, therefore it fails because the bundle is always in strict mode.
I found this error when trying to use virtual-dom with rollup, because some of their CommonJS modules do not work in strict mode.
One potential solution to this problem is to use two immediately-executed-function-expressions: an outer function for all of the CommonJS modules, and an inner function for all of the ES6 modules:
(function () {
    function __commonjs(fn, module) { return module = { exports: {} }, fn(module, module.exports), module.exports; }

    var foo = __commonjs(function (module) {
    // CommonJS, not strict mode
    function foo() {}
    foo.name = 5;

    module.exports = foo;
    });

    (function () {
        'use strict';

        var foo$1 = (foo && typeof foo === 'object' && 'default' in foo ? foo['default'] : foo);

        foo$1();

    }());
}());

Apologies for the eight month silence. This is a wontfix I'm afraid – ES modules are always strict, so there's no correct way to convert a module that relies on non-strict behaviour. There's no good reason for code not to opt in to strict mode, so libraries should update accordingly (it looks like virtual-dom already did).

i am having issues like this too while using mocha/chai to write some tests. It seems it uses arguments/callee etc.

This means Rollup is a non-starter for any legacy applications which rely use ejs templates, and rely on with behavior for parsing.


Create a pre v1.6 theme

Create a theme for those wishing to keep the pre v1.6.0 look and feel

+1

+1 from @shakeelmohamed

Would love to see this happen and I'd be happy to contribute, but I'm not familiar with the plyr codebase at all, any pointers on what needs to be done to add back the pre 1.6 themes?

I did make a start but I think it's going to require some changes to the controls markup to accomodate it because of the left and right groupings. I'll take another look shortly. It'll have to be a new set of styles + a JS flag for the different controls markup I think.


Fix Windows CI

Before submitting

[x] Was this discussed/approved via a Github issue? (no need for typos, doc improvements)
[x] Did you read the contributor guideline?
[ ] Did you make sure to update the docs?
[ ] Did you write any new necessary tests?

What does this PR do?
Adds Windows CI support so we can ensure fairseq is and remains Windows-compatible. 😄
PR review
Anyone in the community is free to review the PR once the tests have passed.
If we didn't discuss your PR in Github issues there's a high chance it will not be merged.
Did you have fun?
 Specifically, memmaps are not being released/closed appropriately due to strong references being held. The big offender is MMapIndexedDataset. This causes every test in test_binaries.py to fail (and anything that uses calls from that file).

The last remaining hurdle is a flaky assertion in sequence generator. 🤔

The flaky test here looks like it happens on all platforms (see here for more context). Once I address some of the hacky stuff to make tests pass here with raw datasets, hopefully this can land.

Ok, the lingering fixes are both related to how raw datasets work. Specifically it doesn't seem like the language codes get appended to the files that are read by the RawIndexedTextDataset. See:

here
here

I think maybe it should be the responsibility of fairseq.data.indexed_dataset.make_dataset to accept a language code (from args) and append that to the filename - this seems least invasive. Do you have any thoughts, @myleott?

Ok, I think I've got something in place for the hacky solution before.

This looks awesome! Will import and review in a bit.

I can't peer into the black box to see where the errors are, but if there are things I can do to help it land I'm happy to.

Oh, it actually looks like the delta between this and this PR is a single linter advice so maybe this isn't such a big effort. 😄

@myleott You'll see the same test failures I was observing before in 88a2249 - in the mmap dataset case, the code knows to append .idx and .bin to resolve the path for LM data, but that's not the case in other datasets.

It also doesn't seem like the datasets are being prefetched, which is causing (fatal) cache misses. 🤔

OK, @myleott - I've fixed the symlink issue and switched everything to using cached datasets. It looks like there were a few minor issues with prefetching that I've addressed, but I think this is good for a (hopefully) final review whenever. 😺

Any chance of importing this to make sure I haven't broken anything, @myleott? If a review has to wait a bit, that's OK.

I've cleaned this up so it's hopefully easier to review. Let me know if you need anything else from me, @myleott

Any thoughts here, @myleott? The only "core" fairseq changes (i.e., not changes to tests) are:

closing the file handler
fixing dtypes to int64
prefetching fixes

Any chance you could review/merge this, @myleott or @alexeib? It's been imported a handful of times without review so I have to keep fixing conflicts when upstream diverges.

Sorry for the delay and thanks for rebasing.
A quick status update on this. We'd like to avoid duplicated versions of each test (one with mmap and another with cached), so we'll probably merge a simplified version of this diff if we can get mmap working on Windows. Having looked into it a bit, the problem seems to be that Windows refuses to delete the temporary directories in the tests while the mmap is open, and technically the tempfile.TemporaryDirectory context manager closes before the mmap is garbage collected.
I think tests should work if we do something like this instead:
class TestLanguageModeling(unittest.TestCase):
    def setUp(self):
        logging.disable(logging.CRITICAL)
        self._tmp_dir = tempfile.TemporaryDirectory()
        self.data_dir = self._tmp_dir.name

    def tearDown(self):
        logging.disable(logging.NOTSET)
        self._tmp_dir.cleanup()

    # everything else as before, but use `self.data_dir` instead of the context manager

I started along this path and things seem to be working, just need to find some time to get it over the finish line. I'll try to merge it later in the week.
Longer term, to set expectations, I do worry that Windows support will continue to break, since I don't think any of our production or research teams use Windows 😢 But in any case having CI coverage will be helpful.

I think tests should work if we do something like this instead ...

Clever. :-) I'm happy to rework that if you'd like.

Longer term, to set expectations, I do worry that Windows support will continue to break

Undoubtedly yes. My hope is to begin adding tests to increase coverage to the point that we have some confidence in cross-platform parity. Adding CI is a first-step and I hope that it operates as due diligence for Windows compatibility much like every other aspect of CI; i.e., if some tests fail, the PR cannot land.

Clever. :-) I'm happy to rework that if you'd like.

Ah thanks, that would be very helpful. So basically revert to the original mmap-based tests everywhere, but using this new tearDown pattern 😄

I don't know why pycharm dorked up the formatting, but if you can share your black config I can reformat as a part of this. ☹

The failures are because of temp directories that are created in multilingual transformer tests. I've mis-ported these because it's not a static data directory like other tests, but a data directory per lang pair. I need to give this some more thought...

The failures are because of temp directories that are created in multilingual transformer tests. I've mis-ported these because it's not a static data directory like other tests, but a data directory per lang pair. I need to give this some more thought...

Ah, you can move this to a new test class

It still doesn't work on Windows ☹ I'll give this another look later, but mmap is causing a lot of issues.

The current strategy is quite hacky, but basically it defers temp directory cleanup until gc by which point it seems like the task has been gc'd, too.

Finally. 😅  OK, @myleott - this change now has a much smaller surface area.

OK, this has been rebased and seems to be working again.

This failure is somewhat mysterious to me - @alexeib or @myleott, do you have any idea why apex would fail to be found in my tests but not yours?

Oh, I think it's because my test runner in this PR (pytest) discover the tests in the submodule and yours (python setup.py test) does not. By discovering it, it tries to import something with a strict dependency on apex. This seems like a bug in master currently.

Is this waiting on anything?

Now that the binary tests have been reworked to support mmap, are there any other blockers here @myleott?

Sorry to keep harassing you all, but it takes a fair bit of mental effort to keep this branch up to date and to fix conflicts and other issues resulting with upstream changes. Are there plans to eventually merge this or should I abandon it, @myleott?

Since this has lost interest from maintainers, I'm going to assume there's no hope of this landing.


[BEAM-5264] Reference DirectRunner implementation of Python User State and Timers API

This change adds the reference DirectRunner implementation of the Python User State and Timers API.  With this change, a user can execute DoFns with state and timers on the DirectRunner.
More details on the API design is available at https://s.apache.org/beam-python-user-state-and-timers.
R: @robertwb
CC: @lukecwik @tweise @aaltay

run python postcommit

Run Python PreCommit

Run Python PostCommit

Run Python PostCommit

Run Python PostCommit

Run Python PostCommit

Run Python PostCommit

Run Python PostCommit

Can you clarify?--I'm not sure how we can do this DirectRunner-specific logic elsewhere (see another place this is done on line 747).

I meant that we should check for key-ness and deterministic coders during pipeline construction.

Do we know that sliding windows were already exploded? Perhaps we should be setting self.has_windowed_inputs and relying on the window assignment from above.
Ah oops I missed what you mean. I set the attribute per your suggestion.

In that case, we shouldn't be re-assigning window (though perhaps worth a comment).

Run Python PostCommit