Guys, did anyone successfully use flow with babel? With actual type checking, not just stripping types.

I have advantages of IDE autocomplete, errors, warnings etc. But I'm not getting any flow errors when I'm writing e.g.:
const a: number = 'string';

How is it possible to use flow for actually showing errors?

Confirming: Do you have // @flow  at the top of your file?

@jeffmo yep.

Hmm, this gives errors for me...
What output do you get when you run node_modules/.bin/flow check (assuming you're using flow-bin?) on the command line?

@jeffmo  I'm using webpack + babel + plugins syntax-flow and transform-flow-strip-types. Those I found out on babel and flowtype websites in sections about using them together. Basically I see here that I lack of something that must be checking code before stripping types... But I'm not sure how to include those into flow

@idchlife: Can you confirm what output running node_modules/.bin/flow check gives on the command line?
This will help confirm whether Flow is set up properly on your system (or if there's an issue with the setup) before we go further into figuring out what's going wrong for you

In general, the workflow for Flow is:

Run flow on the pre-transformed code to check the types (and see any potential type errors)
Compile to strip away the extra type annotation syntax (i.e. Babel)
Run the output of the compilation

I'm not sure what workflow you have set up, so before we dig in to that I want to be sure that Flow is properly set up and installed for your project. Once we know that Flow is set up, we can see why you're not seeing any type errors

@jeffmo yep, I installed flow-bin and it does work properly (showing some errors about not being able to find module Set from node_modules, but it's the lack of exclude, I think). Now I just need to find out how to use it with webpack, since flowcheck-loader fails unable to find flowcheck/transform module.
Thanks! The problem with setup, indeed. If I find solution I will post it here.


How to get Helium 1.9's Share extension to work?

I have updated to Helium 1.9 and am unable to get the "Open in Helium" contextual menu item to appear anywhere.  I am control-clicking on URLs in the address bar, and it doesn't appear there, nor does it appear under the "Share" submenu, or under "More..."
It doesn't appear under System Preferences ->  Extensions -> Share Menu, or System Preferences ->  Extensions -> All.  It also doesn't appear under System Preferences -> Keyboard -> Shortcuts -> Services.
I am running Safari 9.0.1 and OS X 10.10.5.
What am I missing?

I did some testing and it appears that this feature only works in El Capitan, not Yosemite.
Perhaps the release notes can mention that somewhere? Or better yet, perhaps full compatibility can extend back one OS version...?   :)

I wasn't aware that it does not work in Yosemite. If you know why, please let me know!

On Nov 14, 2015, at 2:51 PM, Fofer<EMAIL_ADDRESS>wrote:
I did some testing and it appears that this feature only works in El Capitan, not Yosemite.
Perhaps the release notes can mention that somewhere? Or better yet, perhaps full compatibility can extend back one OS version...? :)
—
Reply to this email directly or view it on GitHub.

Unfortunately I don't know why it doesn't work in Yosemite.  I do know that once I upgraded to El Capitan, Helium's new Share extension began working for me, at least somewhat.  I only see "Open in Helium" under Safari's File -> Share menu, and the Share toolbar icon.  I don't see it under the Share contextual menu item, even though it is certainly enabled, and I even dragged it to the top of the list.
Perhaps a Safari extension, to give Helium a proper button in the browser toolbar, would be a good idea?


Issues with overwriting key files

via @ajshort
.htaccess, .gitignore and _ss_env are completely overridden
_ss_env should not be created if a flag is passed (or a parent dir has an _ss_env file).

Thank you for your contribution here. I just wanted to let you know that we’re looking to improve our management of issues and pull requests, with a goal to providing clear direction on how Symbiote contributes to the open source community. As part of this ongoing effort:

issues and pull requests that have been open prior to December 2017 with no recent activity are being closed

this is included

if you can confirm this remains applicable for SS3.6+ please do open it again

remaining issues and pull requests will be

categorised

on a clear path to resolution (whatever the next step may be).

This ultimately brings us one step closer to our ambition; being able to prioritise current issues and contributions in a timely manner. If you have any questions, please see https://www.symbiote.com.au/contributing for further information.


Support cff (Citation File Format) as output format

Website describing this format: https://citation-file-format.github.io/

See here for the an example file and how GitHub renders the result: https://github.com/openjournals/inara/tree/cff-test

This does not change any existing formats, so I'm just merging this.
@xuanxu Inara will now generate a CITATION.cff file when cff is included in the output formats, e.g. -o cff,pdf.

Nice! 👏 👏


Common generic names for medications are not detected.

First, I want to say this is an awesome project and has made some of my own work easier. Second, the package seems to have issues with generic names of very common medications such as Amphetamines/Adderall or Acetylsalicylic acid/Aspirin. For example:
drug_test = find_drugs('aspirin'.split()) print(drug_test)
Yields:
[({'name': 'Aspirin', 'synonyms': {'Ecotrin', 'Acylpyrin', 'Acetysal', 'Easprin', 'Aspirtab', 'Colfarit', 'Entaprin', 'Aspirin', 'Valomag', 'Magnecyl', 'Fasprin', 'Buffex', 'Halfprin', 'Polopirin', 'Endosprin', 'Acuprin', 'Aloxiprimum', 'Aspidrox', 'Solupsan', 'Ascriptin', 'Miniprin', 'Dispril', 'Bayer', 'Solprin', 'Zorprin', 'Polopiryna', 'Ridiprin', 'Micristin'}, 'medline_plus_id': 'a621021', 'wikipedia_url': 'https://en.wikipedia.org/wiki/Aspirin', 'mesh_id': 'D058633'}, 0, 0)]
But has no mention of acetylsalicylic acid. In fact the inverse:
drug_test = find_drugs('acetylsalicylic acid'.split()) print(drug_test)
Yields:
[]
In DrugBank vocabulary Aspirin is a synonym for acetylsalicylic acid. There are others like valproic acid as well. Any idea what is causing this unexpected behavior?
Thanks again for the hard work on the package.

Thanks! I'll look into this and see if I can find a solution. In the meantime, do you have any idea what's going wrong?

Also, did you check that the generic name that is not matching, is in the DB?

Sure did. I ended up writing a script to make a new DB from the DrugBank one to solve the issue and it worked.

"acetylsalicylic acid" is now working in v2.0.0 of library (not yet on Pypi)


[Question]: pip install azure failed

Describe your problem
Starting with v5.0.0, the 'azure' meta-package is deprecated and cannot be installed anymore.
Please install the service specific packages prefixed by azure needed for your application.
  The complete list of available packages can be found at:
  https://aka.ms/azsdk/python/all

  Here's a non-exhaustive list of common packages:

  -  azure-mgmt-compute (https://pypi.python.org/pypi/azure-mgmt-compute) : Management of Virtual Machines, etc.
  -  azure-mgmt-storage (https://pypi.python.org/pypi/azure-mgmt-storage) : Management of storage accounts.
  -  azure-mgmt-resource (https://pypi.python.org/pypi/azure-mgmt-resource) : Generic package about Azure Resource Management (ARM)
  -  azure-keyvault-secrets (https://pypi.python.org/pypi/azure-keyvault-secrets) : Access to secrets in Key Vault
  -  azure-storage-blob (https://pypi.python.org/pypi/azure-storage-blob) : Access to blobs in storage accounts

  A more comprehensive discussion of the rationale for this decision can be found in the following issue:
  https://github.com/Azure/azure-sdk-for-python/issues/10646

  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
any idea? thanks.

What about installing by poetry?
poetry install --sync --no-root;

tried  but it thrown errors as following:
Current Python version (3.11.0) is not allowed by the project (>=3.12,<3.13).
Please change python executable via the "env use" command.

even  using py312 , pip3 install azure ,though it throwing errors as  following:
super().run_setup(setup_script=setup_script)
        File "/private/var/folders/qx/4xlthzrn7qd91s31fn7pmb4m0000gp/T/pip-build-env-atyornk_/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 318, in run_setup
          exec(code, locals())
        File "<string>", line 60, in <module>
      RuntimeError:

      Starting with v5.0.0, the 'azure' meta-package is deprecated and cannot be installed anymore.
      Please install the service specific packages prefixed by `azure` needed for your application.

      The complete list of available packages can be found at:
      https://aka.ms/azsdk/python/all

      Here's a non-exhaustive list of common packages:

      -  azure-mgmt-compute (https://pypi.python.org/pypi/azure-mgmt-compute) : Management of Virtual Machines, etc.
      -  azure-mgmt-storage (https://pypi.python.org/pypi/azure-mgmt-storage) : Management of storage accounts.
      -  azure-mgmt-resource (https://pypi.python.org/pypi/azure-mgmt-resource) : Generic package about Azure Resource Management (ARM)
      -  azure-keyvault-secrets (https://pypi.python.org/pypi/azure-keyvault-secrets) : Access to secrets in Key Vault
      -  azure-storage-blob (https://pypi.python.org/pypi/azure-storage-blob) : Access to blobs in storage accounts

      A more comprehensive discussion of the rationale for this decision can be found in the following issue:
      https://github.com/Azure/azure-sdk-for-python/issues/10646

head to git clone https://github.com/Azure/azure-sdk-for-python.git   to manually install it to see what it will happen.

I guess the solution might be on stackoverflow.

─ azure 1.0.2 would require
│  │  └─ python >=3.5,<3.6.0a0 , which can be installed;
│  ├─ azure 1.0.2 would require
│  │  └─ python >=3.6,<3.7.0a0 , which can be installed;
│  ├─ azure [0.10.0|0.10.2|0.11.0|0.11.1] would require
│  │  └─ python 3.3* , which can be installed;
│  └─ azure 1.0.2 would require
│     └─ python 3.6* , which can be installed;
└─ pin-1 is not installable because it requires
└─ python 3.12.* , which conflicts with any installable versions previously reported.
Pins seem to be involved in the conflict. Currently pinned specs:

python 3.12.* (labeled as 'pin-1')   maybe  in current ragflow  required py312, but azure is not compatible.

and after pip install azure==4.0.0 it throws:
from azure.storage.blob import ContainerClient
ImportError: cannot import name 'ContainerClient' from 'azure.storage.blob' (/Users/yangboz/anaconda3/envs/ragflow/lib/python3.11/site-packages/azure/storage/blob/init.py)

and   azure-mgmt-storage,  azure-storage-file-datalake, psycopg2-binary,boto3, yfinance,pywencai...
got
File "/Users/yangboz/git/ragflow/api/apps/__init__.py", line 84, in register_page
    spec.loader.exec_module(page)
  File "/Users/yangboz/git/ragflow/api/apps/document_app.py", line 216
    doc_item['thumbnail'] = f'/v1/document/image/{kb_id}-{doc_item['thumbnail']}'
                                                                    ^^^^^^^^^
SyntaxError: f-string: unmatched '['

it should be
doc_item['thumbnail'] = f"/v1/document/image/{kb_id}-{doc_item['thumbnail']}"


METL-206: Slide -> Page where user-visible only.

Looks to be UI only, no behaviour change.  I'm okay for this to go in.


Removing Pool Characters Programmatically

I have a question about removing characters from a pool. Specifically, how would I strip the characters in the ambiguous variable from document.write of chancePass.string in realtime? The pool is currently using the variables spaces, lowerCase, upperCase, digits, and special.
To clarify, I'm asking about a solution within chance.js rather than using something like .replace() before calling chancePass.string. I understand there are other methods to get this done. If there isn't a chance.js solution please feel free to just close the ticket.
    // STRING CREATION
    var lowerCase = "abcdefghijklmnopqrstuvwxyz";
    var upperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    var digits = "1234567890";
    var special = "!@#$%^&*-_=+{}[]()|/\\\"\'`~,;:.\<\>";
    var ambiguous = "illL1o0O|";
    // USER VARIABLES
    var masterPass = "a test p@ssword";
    var siteName = "domain.com";
    var userProfile = "loginname";
    var characterLength = chance.integer({
        min: 4,
        max: 24
    });
    // GENERATE UNIQUE PASSWORD
    var chancePass = new Chance(masterPass, siteName, userProfile, characterLength);
    document.write(chancePass.string({
        length: characterLength,
        pool: lowerCase + upperCase + digits + special,
    }));

Thanks!

Okay, I'm assuming that there is no chance.js specific method. RegEx is it.

Sorry I didn't respond to this sooner, I was in the woods backpacking this weekend so I didn't get to all of my email.
There is to way to explicitly remove characters from the pool at current but there is a way to define your own pool.
I do think there is value in having this kind of exclusion, it just doesn't exist today.


Spell correction.

Hey @NikhilWaghmode09, thanks for opening the PR, but the spelling here is correct in American English.

Hey @NikhilWaghmode09, thanks for opening the PR, but the spelling here is correct in American English.
I am a beginner just trying to support open-source.I thought "colour" would be more sustainable there so tried to correct it...

No problem. In general, these changes that don't move the project forward only contribute to increasing maintainer burden.
If you're interested in helping out, check out our latest blog post: https://www.electronjs.org/blog/discord-hacktoberfest-2020


Quickly open saved directory

Is your feature request related to a problem? Please describe.
no
Describe the solution you'd like
no
Describe alternatives you've considered
I hope to be able to quickly open the directory for receiving files after receiving them，thanks
Additional context
No response

You can click on the "download directory" link on the top of the screen during transfer (and also after the transfer)

I hope to have a quick access feature to open the download directory either in the system tray or in the software interface. Currently, the link to the download directory is located in the third-level menu of the transfer history, which is inconvenient to access every time. I hope the team can add this feature.

You can click on the "download directory" link on the top of the screen during transfer (and also after the transfer)


Authentication Error in NodeJS Integration

I have recently come across SurrealDB, and installed it.
After adding to path, I started the server using surreal start --log trace --user root --pass root

 .d8888b.<PHONE_NUMBER>b.  888888b.
d88P  Y88b                                            888 888  'Y88b 888  '88b
Y88b.                                                 888 888    888 888  .88P
 'Y888b.   888  888 888d888 888d888  .d88b.   8888b.  888<PHONE_NUMBER>888K.
    'Y88b. 888  888 888P'   888P'   d8P  Y8b     '88b 888 888    888 888  'Y88b
      '888 888  888 888<PHONE_NUMBER>8 .d888888 888 888    888 888    888
Y88b  d88P Y88b 888 888     888     Y8b.     888  888 888 888  .d88P 888   d88P
 'Y8888P'   'Y88888 888     888      'Y8888  'Y888888<PHONE_NUMBER>P'  8888888P'

[2022-09-27 17:37:44] INFO  surrealdb::iam Root authentication is enabled
[2022-09-27 17:37:44] INFO  surrealdb::iam Root username is 'root'
[2022-09-27 17:37:44] INFO  surrealdb::dbs Database strict mode is disabled
[2022-09-27 17:37:44] INFO  surrealdb::kvs Starting kvs store in memory
[2022-09-27 17:37:44] INFO  surrealdb::kvs Started kvs store in memory
[2022-09-27 17:37:44] INFO  surrealdb::net Starting web server on <IP_ADDRESS>:8000
[2022-09-27 17:37:44] INFO  surrealdb::net Started web server on <IP_ADDRESS>:8000

In my NodeJS app, I have the following code (adapted from your docs):
import Surreal from 'surrealdb.js';
const db = new Surreal('http://localhost:8000/rpc');

async function main() {
	try {

		// Signin as a namespace, database, or root user
		await db.signin({
			user: 'root',
			pass: 'root',
            		NS: 'practice',
            		DB: 'buybig'
		});
        	console.log('y');

		// Select a specific namespace / database
		// await db.use('practice', 'buybig');

		console.log(await db.select('users'));

	} catch (e) {
		console.error('ERROR', e);
	}
}

main();

I am getting this error:
ERROR AuthenticationError: There was a problem with authentication
    at Surreal._Surreal_signin (file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/index.js:416:23)    at Surreal.<anonymous> (file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/index.js:225:111)
    at Surreal.f (file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/classes/emitter.js:28:18)
    at file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/classes/emitter.js:34:22
    at Array.forEach (<anonymous>)
    at Surreal.emit (file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/classes/emitter.js:33:67)
    at Socket.<anonymous> (file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/index.js:126:29)
    at file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/classes/emitter.js:34:22
    at Array.forEach (<anonymous>)
    at Socket.emit (file:///C:/Users/jaide/OneDrive/Documents/Projects/HTMLProject/buybig/node_modules/surrealdb.js/esm/classes/emitter.js:33:67)
^C

And this in my SurrealDB logs:
[2022-09-27 18:06:04] INFO  surreal::web <IP_ADDRESS>:64675 GET /rpc HTTP/1.1 101 "-" 68.7µs

Accessing database through VSCode's Thunder Client and SurrealDB cli tool works flawlessly.
Any help is appreciated.
Environment:

OS: Windows 10

Hi @JaiSh12345 to signin as a 'root' user don't specify a NS or DB in the signin() method...
import Surreal from 'surrealdb.js';
const db = new Surreal('http://localhost:8000/rpc');

async function main() {
	try {

		// Signin as a root user
		await db.signin({
			user: 'root',
			pass: 'root',
		});
        	console.log('y');

		// Select a specific namespace / database
		await db.use('practice', 'buybig');

		console.log(await db.select('users'));

	} catch (e) {
		console.error('ERROR', e);
	}
}

main();

Okay! I don't know why I added NS and DB. I suppose I was playing around with it. Thanks!

Hmmm, but it's not ending the program correctly. I get:
C:\Users ... > node app.js
y
[ { email<EMAIL_ADDRESS>id: 'users:john', pass: 'pass' } ]
^C

And it just hangs after the console log.

You have to close the client! The DB connection is still alive!

Ahh, okay, got it.
Just added a db.close(); at the end of the program.


Including links to other sections

Adding links to unbounded strings and dates for further information.

Unfortunately, I had to solve a git conflct, which requires a new approval.


Security Updates: Dashboard Restriction, API Protection, and RLS Permission Revamp

This pull request introduces significant security updates to our application, focusing on restricting dashboard access, protecting APIs, and updating Row-Level Security (RLS) permissions. Here’s a detailed overview of the changes:
Dashboard Access Restriction:

Modified access control to remove public usage of the dashboard.
Ensured that only authorized personnel can view and interact with the dashboard, enhancing overall application security.

API Protection Enhancements:

Implemented additional security measures to protect our APIs.
These updates are designed to prevent unauthorized access and ensure that sensitive data remains secure.

Updated RLS Permissions:

Conducted a comprehensive review and update of our Row-Level Security permissions.
The new RLS configurations are more robust, ensuring that data access is properly controlled and in line with our security protocols.

Planned Next Actions:

The next phase of development will focus on integrating database fetching for categories and hooks.
This will include ensuring these new features adhere to our enhanced security standards.

Additional Notes:
The security updates have been thoroughly tested in a controlled environment.
Emphasis was placed on not only fortifying the security but also maintaining smooth user experience and functionality.
Action Items:

[ ] I request a detailed review of the implemented security measures.
[ ] Feedback on the updates and suggestions for further enhancements are welcome.
[ ] Following approval, these security updates can be merged into the main branch to bolster our application's defenses.

@FindMalek Deployment failed
Module not found: Can't resolve 'fs'
--
01:32:25.592 |
01:32:25.592 | https://nextjs.org/docs/messages/module-not-found
01:32:25.592 |
01:32:25.592 | Import trace for requested module:
01:32:25.592 | ./src/components/NewHookForm.jsx
01:32:25.592 |
01:32:25.592 |
01:32:25.592 | > Build failed because of webpack errors
01:32:25.632 | ELIFECYCLE  Command failed with exit code 1.

The design is slightly off @FindMalek  from current display https://uniswaphooks.com/components/hooks/community

Change Uniswap v3 to v4 too please in Tools page 🙏

@FindMalek


problem with synced-folder 0.10.2

We're using this feature when syncing folder kept in git with s3 like this (typescript):
    const folder = new synced.S3BucketFolder("synced-folder", {
        path: "./testdata",
        bucketName: "somebucketname",
        acl: aws.s3.BucketOwnerFullControlAcl,
        managedObjects: false
    });

This is executed by github action during deployment to some specific env.
We observed that the folder is synced just once - when created for the first time only. New files when the synced-folder resource exists do nto get uploaded to s3. Is there a way to further debug this?

Thanks for the report! I'm able to reproduce this. Looking into it.

Dug into this a bit more over the weekend. It looks like this is a bug either in the Command provider (which this component uses to run commands like aws s3 sync when managedObjects is false) or in pulumi-go-provider. Specifically, the bug is that changes to the Command's environment property (whose value changes when the synced folder's contents change) are not triggering its update script to be run as they should be.
https://github.com/pulumi/pulumi-command/issues/231 to track has been filed to track what we think is the core issue, but I'll leave this one open as I'm sure other users of this component are seeing it as well.

It seems that the core of the issue was fixed but that the change is not yet reflected in the package. Maybe this just needs a version bump to trigger a new release @cnunciato?

@gbegher This is resolved with the latest version of synced-folder, 0.11.1. Thanks again reporting this!


Properly compute shipping order line total

The total column of the order line didn't consider the tax for shipping lines.
I added a few assertions and updated CalculateTax to fill every amounts.
I also simplified ApplyShipping to avoid recomputing the same amounts and only fill the breakdown. Please check that it makes sense, I'm out of my comfort zone there.

Appreciate this has been hanging around a bit. I'm not sure the shippingSubTotal should be in the calculate tax action as we need it before we calculate tax , the sub total needs to be available to any actions that may come between and it's a bit out the scope of what the CalculateTax action is attempting to do.

Thanks for reviewing. Splitting concerns makes sense, I reverted ApplyShipping and adapted CalculateTax accordingly.

Having reviewed the code these are my thoughts...

We need documentation to reflect these changes
If there is no shipping, should the shipping values be 0 rather than null?
Maybe we should have a test to cover the no-shipping scenario?

@alecritson I think this is probably needed, however, do we need to consider any updates to the Orders side of things?


refactor(codegen): add line break

#6492  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @overlookmotel and the rest of your teammates on  Graphite

Just formatting nit, so merging without review.

Merge activity

Oct 13, 5:23 AM EDT: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


chore: new release

Added

#200

Hola! Only one minor issue to comment from my side that I think we can approach as a separate ticket after the release. I see that on Volta and Aurora chains the simulation is not working (I am assuming there is no tenderly support for these chains and this is expected):

Maybe we could hide the button for these chains or show a generic error for these scenarios when there is no support for a specific chain after the button is clicked?
Cheers!


Confusion when installing

I'm confuse when it says "C:\Users<username>\Documents\houdiniXX.X\packages "
but in my laptop the "packages" file is in "C:\Program Files\Side Effects Software\Houdini 20.0.547\packages" so it's in the "Program File" instead of "C:\Users<username>\Documents\houdiniXX.X\packages.
so i put the "ldraw2houdini-main" in "C:\Program Files\Side Effects Software\Houdini 20.0.547\packages" not "C:\Users<username>\Documents\houdiniXX.X\packages" and i put the "icons" and "Brickini.shelf" inside "C:\Users<username>\Documents\houdiniXX.X"
also after i've done with all of that, inside houdini i'm getting this error message when i typed the bird LEGO piece in the installation guide (2546p01)  :
Traceback (most recent call last):
File "ldraw_part", line 7, in
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.547/houdini/python3.10libs\houpythonportion\ui.py", line 1137, in decorator
return func(*args, **kwargs)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.547/houdini/python3.10libs\hou.py", line 15084, in createNode
return _hou.Node_createNode(self, node_type_name, node_name, run_init_scripts, load_contents, exact_type_name, force_valid_node_name)
hou.OperationFailed: The attempted operation failed.
Invalid node type name
also other errors when i try the other featurre in the shelf

Hey hey,
Please avoid putting random files in random locations. Writing directly into the directory of the software itself is very bad practice and also means, you will have to reinstall the tool every time you update your Houdini version.
Follow the instructions in the readme very closely step by step and don't try to do anything different :)
If the package folder doesn't exist in C:\Users<username>\Documents\houdiniXX.X you can create the folder yourself and then put the json file in there. The json file will then tell Houdini where to find the tool itself and the ldraw library. Make sure that the paths specified in the json file match exactly the location where you downloaded the folders.
Hope this helps!
Cheers

I did it according to the new readme, putting make the packages if it's not exist but i still get the same error

I'm afraid I need more detailed information in order to help.

Did you delete all the files you put in different locations and started clean from scratch again?
Are you able to manually create a Brickini LDraw Part node in sop context without using the shelf tool and does it display the basic 2x4 brick?
What are the exact steps you are performing to get the error?

Can you provide more precise details how you are installing the tool, and where you are putting your files, ideally with screenshots, of each folder and also showing the content of the json file?

this is all i've been doing

I downloaded the files needed

I put the draw library inside "C:\Users\ASUS\Downloads\ldraw2houdini-main\resources"

I created the "packages" file because it wasn't originally there in "C:\Users\ASUS\Documents\houdini20.0"

I put the "ldraw2houdini-main" and "ldrawhoudini.json" inside the "packages" file

I adjust the "ldraw2houdini.json" like in the instruction

I put the "brickini.shelf" in the toolbar (C:\Users\ASUS\Documents\houdini20.0\toolbar)

and then i put the "icons" in "icons"
(C:\Users\ASUS\Documents\houdini20.0\config\Icons)

Okay, but so you aren't actually installing it according to the readme. In fact pretty much every single step you are showing me is different from the readme? Also I don't understand why you are taking random files like the shelf and the icons and putting it in other random folders. The readme never mentioned to do anything like that.
You have to follow the readme. My best advice is to delete everything you did and start from scratch again. Please just go through the steps, follow it very very closely and don't try to do anything different. Really, nothing different. Just follow it exactly as described. Same folder paths, same everything.

the ldraw2houdini folder needs to go here: C:\Users\ASUS\Documents\git\ldraw2houdini
the ldraw library folder (complete.zip) needs to go here: C:\Users\ASUS\Documents\ldraw
the ldraw2houdini.json has to go here: C:\Users\ASUS\Documents\houdini20.0\packages

Please let me know how it goes!

There is no "git" folder in my laptop in
"C:\Users\ASUS\Documents\git\ldraw2houdini"
There id just
"C:\Users\ASUS\Documents\HoudiniXX.XX\ldraw2houdini"

There is no "ldraw" folder in my "C:\Users\ASUS\Documents" laptop

I did put the .json file correctly

And the reason i put the "brickni.shelf" in the "toolbar" is because the brickini is no showing in the houdini shelves, and i put the "icons" the "icons" is because the brickini featture icons is not showing in the brickini menu, also do you have something like Discord? So i can contact you directly because we always replying in ± 24 hours
*Note : i'm using the newest Houdini aprentice non commercial production build

Ah yeah, that might be easier. I just sent you a friend request on Discord :)

We figured it out on Discord. The files just had to be in the right paths for it to work. Closing this :)


Japanese Translation

Thank you for your contribution! Only one thing to change: please rename the file to jp.md.


Feature Requests

[x] Add "external title" to the track class
[ ] Add "Facebook" plugin to plugins list (research required)
[ ] Add "Apple Music" plugin to plugins list (research required)

Apple Music requires 100$/year membership, don't want to scrape
Facebook doesn't have a solid api either, don't want to scrape


pythonPackages.pyatv: move pytestCheckHook to checkInputs

Motivation for this change
backport of #100489
ZHF: #97479
cc @NixOS/nixos-release-managers
Things done

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

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

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

I know this was already merged into master, do you mind making a separate PR against master, with the changes, and then just backporting both commits in this PR?

@jonringer You mean something like this?


How can I use the ESP32 to open the bulb pairing window?

Build issue(s)
I've implemented using ESP32 to act as a switch to control the lights on/off with the help of clusters like binding, following the steps in examples/light-switch-app/esp32 in Github. But I'm now trying to get to the button on the ESP32 to enable a pairing window that opens the bulb(through the cluster associated with the pairing function), just like a switch that I press and the bulb becomes available for pairing instead of on/off.
Is my idea realizable? Thanks！
Platform
No response
Anything else?
No response

You use the OpenCommissioningWindow command.

No no,I think you misunderstood me. What I'm trying to accomplish is to use one of the ESP32 buttons to open the commissioning window of the light it's BINDING with, not the CHIP-TOOL command. That is, I want to realize that the device controls the device, not the console to control the device, do you understand what I mean?
For example, using examples/light-switch-app/esp32 , when I press the on/off button, the light goes on or off.
What I want, when I press the on/off button, the light opens the commissioning window.
Looking forward to your reply.

Ah, OK. Well, then you need:

The lights need to have their ACLs set so that the ESP32 is an administrator.
The ESP32 needs to send the OpenCommisioningWindow command to the lights when the button is pressed.


Maximally parallelize dbt clone

resolves https://github.com/dbt-labs/dbt-core/issues/7914

Problem

For GraphRunnableTasks such as the CloneTask, the run queue always enforced topological order of dependencies during execution, even when the task does not strictly require it.
Solution

Make it possible for GraphRunnableTask subclasses to provide a PRESERVE_EDGES class attribute that directs the graph queue generation to remove edges from the graph prior to constructing the priority queue. The reason a class attribute was chosen was because this does not need to be user-configurable and should be a constant queue mechanism for all invocations of the clone command.
Checklist

[x] I have read the contributing guide and understand what's expected of me
[x] I have run this code in development and it appears to resolve the stated issue
[x] This PR includes tests, or tests are not required/relevant for this PR
[x] This PR has no interface changes (e.g. macros, cli, logs, json artifacts, config files, adapter interface, etc) or this PR has already received feedback and approval from Product or DX
[x] This PR includes type annotations for new and modified functions

I've done some local 🎩 benchmarking of dbt clone against bigquery (since it supports zero-copy cloning) to compare performance on this branch vs main.
🎩  Setup:
dbt run --target prod
mkdir state
mv target/manifest.json state/

On a project with a chain of 5 models (i.e. 1 -> 2 -> 3 -> 4 -> 5):
Recording average execution time of dbt clone --state state --full-refresh --threads 5 across 5 runs:

main: 15.38s, 34% cpu utilization
this branch: 10.17s, 48% cpu utilization

On a project with a chain of 10 models:
Recording average execution time of dbt clone --state state --full-refresh --threads 5 across 5 runs:

main: 20.41s, 20% cpu utilization
this branch: 9.02s, 57% cpu utilization


Util v3

from v2:

Add doc for all functions

Looks good (modulo check-style failing).

Looks good!

merged, thanks for review guys


Why use PostgresqlUUIDField from django_extension instead of UUIDField?

The original code make the app unusable on a MySQL database.
Not sure if it is going to work on a postgresql db though.
Hope this helps.

@dkaufhold Guess we can merge tis request, right?

When we change a field on the model, don't we also have to create a schemamigration? I'm not sure what South would do about such a change, i.e. if the fields are compatible with each other and all the existing values can be migrated into the new field (I would HOPE that it just works).
But I think we will definitely need a schemamigration here, amiright?

Maybe you should wait a bit. I may have a the opportunity to test it on a real pg setup soon. Will post an update.

@Tyrdall I'd expect the storage to be the same, but looks as the postgresql version gives some advantages in terms of indexing. Note, that from Django 1.8 onwards Django provides its own UUID field and so django extensions will no longer support it.

@reason-systems awesome! We will wait for your report :)

I have two live projects using the package (very handy btw, well done).
The first has an old py26/dj14/south setup. I deployed it using the unpatched version, and everything went well. I reproduced a fresh install (new mysql db and env/) and it got it right:

mysql> describe newsletter_signup_newslettersignup;
+--------------------+-------------+------+-----+---------+----------------+
| Field              | Type        | Null | Key | Default | Extra          |
+--------------------+-------------+------+-----+---------+----------------+
| id                 | int(11)     | NO   | PRI | NULL    | auto_increment |
| user_id            | int(11)     | YES  | MUL | NULL    |                |
| email              | varchar(64) | NO   |     | NULL    |                |
| signup_date        | datetime    | NO   |     | NULL    |                |
| verification_token | varchar(36) | NO   |     | NULL    |                |
| verification_date  | datetime    | YES  |     | NULL    |                |
+--------------------+-------------+------+-----+---------+----------------+
6 rows in set (0,00 sec)

The other project is a py27/dj18. So it first complains on south migrations/ directory. If you rename migrations/ you get this error message (I created a minimal dj18 test project):

$ python manage.py syncdb
/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
  warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)

Operations to perform:
  Synchronize unmigrated apps: staticfiles, newsletter_signup, messages
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
    Creating table newsletter_signup_newslettersignup
Traceback (most recent call last):
  File "manage.py", line 10, in
    execute_from_command_line(sys.argv)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 25, in handle
    call_command("migrate", **options)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 120, in call_command
    return command.execute(*args, **defaults)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle
    created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 310, in sync_apps
    editor.create_model(model)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 286, in create_model
    self.execute(sql, params or None)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/base/schema.py", line 111, in execute
    cursor.execute(sql, params)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/utils.py", line 98, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UUID NOT NULL, `verification_date` datetime(6) NULL)' at line 1")

It then recreated the same minimal project using the patched version and get this error (then running again the migrate command seem to work):

$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, newsletter_signup, messages
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
    Creating table newsletter_signup_newslettersignup
    Running deferred SQL...
Traceback (most recent call last):
  File "manage.py", line 10, in
    execute_from_command_line(sys.argv)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 346, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 394, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/base.py", line 445, in execute
    output = self.handle(*args, **options)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 179, in handle
    created_models = self.sync_apps(connection, executor.loader.unmigrated_apps)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 318, in sync_apps
    cursor.execute(statement)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/utils.py", line 98, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 62, in execute
    return self.cursor.execute(sql)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 124, in execute
    return self.cursor.execute(query, args)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/tmp/newsletter_signup_test/env/local/lib/python2.7/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
django.db.utils.IntegrityError: (1215, 'Cannot add foreign key constraint')
$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, newsletter_signup, messages
  Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying sessions.0001_initial... OK

It got it right at db level (I guess ; any hint about the constraint?):

mysql> describe newsletter_signup_newslettersignup;
+--------------------+-------------+------+-----+---------+----------------+
| Field              | Type        | Null | Key | Default | Extra          |
+--------------------+-------------+------+-----+---------+----------------+
| id                 | int(11)     | NO   | PRI | NULL    | auto_increment |
| user_id            | int(11)     | YES  |     | NULL    |                |
| email              | varchar(64) | NO   |     | NULL    |                |
| signup_date        | datetime(6) | NO   |     | NULL    |                |
| verification_token | varchar(36) | NO   |     | NULL    |                |
| verification_date  | datetime(6) | YES  |     | NULL    |                |
+--------------------+-------------+------+-----+---------+----------------+
6 rows in set (0,00 sec)

The 1.8 migration system seem to work OK:

$ python manage.py makemigrations newsletter_signup
Migrations for 'newsletter_signup':
  0001_initial.py:
    - Create model NewsletterSignup
$ python manage.py migrate -l
admin
 [X] 0001_initial
auth
 [X] 0001_initial
 [X] 0002_alter_permission_name_max_length
 [X] 0003_alter_user_email_max_length
 [X] 0004_alter_user_username_opts
 [X] 0005_alter_user_last_login_null
 [X] 0006_require_contenttypes_0002
contenttypes
 [X] 0001_initial
 [X] 0002_remove_content_type_name
newsletter_signup
 [ ] 0001_initial
sessions
 [X] 0001_initial
$ python manage.py migrate newsletter_signup --fake
(...)
$ python manage.py migrate newsletter_signup zero
(...)
$ python manage.py migrate newsletter_signup
Operations to perform:
  Apply all migrations: newsletter_signup
Running migrations:
  Rendering model states... DONE
  Applying newsletter_signup.0001_initial... OK

So I think this is finally more a mysql + django1.8 compatibility issue.
Next week I'm doing a big update on the second project, which I had to deploy on postgres at the last minute to work around the issue. I'm moving back to mysql, but I'll have a spare pg db to play with on preprod. Hope I'll have time to do some tests.
NB: I had no issue with a sqlite db.
FTR, simple procedure to create a test project

$  django-admin startproject newsletter_signup_test
$  cd newsletter_signup_test/
$  virtualenv env
$  source ./env/bin/activate
$  pip install -U django
$  pip install git+https://github.com/reason-systems/django-newsletter-signup/@patch-1#egg=newsletter_signup
$  vi newsletter_signup_test/settings.py # add newsletter_signup to INSTALLED_APPS + setup DB
$  python manage.py migrate


Blog app: Add authorization rules

The Blog app will be a classic example of a blog website which will be a fully functional website that will show the list of posts and empower readers to interact with them by adding comments and liking posts.
In this PR:

[x] Install CanCanCan in your project.
[x] Add a role column to the users table. Remember to use a migration for this.
[x] A user can delete a post if it is theirs or if they have an admin role (column role has value "admin"). Use CanCanCan for this authorization.

For that you need to implement the post deleting functionality. Add the "Delete" button to the view and make sure that only authorized users can see it.

[x] A user can delete a comment if it is theirs or if they have an admin role (column role has value "admin"). Use CanCanCan for this authorization.

For that you need to implement the comment deleting functionality. Add the "Delete" button to the view and make sure that only authorized users can see it.

Hi @Ghiftee
Thanks for approval:)


Set az config to Ignore warnings

Context
Storage account connection string was being displayed on the run output this was due to warning messages for preview features
Changes proposed in this pull request

Set core.only_show_errors=true flag

Guidance to review
remove core.only_show_errors=true to show the connection string
Link to Trello card
https://trello.com/c/QX7E8knD/298-secret-masking-for-azure-production-database-backup-workflow
Things to check

[ ] If the code removes any existing feature flags, a data migration has also been added to delete the entry from the database
[ ] This code does not rely on migrations in the same Pull Request
[ ] If this code includes a migration adding or changing columns, it also backfills existing records for consistency
[ ] If this code adds a column to the DB, decide whether it needs to be in analytics yml file or analytics blocklist
[ ] API release notes have been updated if necessary
[ ] If it adds a significant user-facing change, is it documented in the CHANGELOG?
[ ] Required environment variables have been updated added to the Azure KeyVault

 Secret Masking for Azure Production Database Backup Workflow


[Enhance] Sampling points based on distance metric

Sampling points based on distance metric (keeping all the far points and sampling only the near points)
Rename function IndoorPointSample to PointSample

@ZwwWayne
Thanks for your advice. I have updated the code:

Adding the deprecated warning for IndoorPointSample.
Adding necessary comments.
Using the API provided by point structure in base_points.py.

I want to add the IndoorPointSample into the __init__ but can not pass the pre-commit. The message in pre-commit always shows:

However, there isn't any fixing in my code. So I temporarily reset my code and want more suggestions.

I want to add the IndoorPointSample into the __init__ but can not pass the pre-commit. The message in pre-commit always shows:

However, there isn't any fixing in my code after pre-commit. So I temporarily reset my code and want more suggestions.

Maybe that's because yapf and isort has some conflicts here (isort first fix to some style1, and then yapf change it back to original style). You can disable yapf like here to solve this problem.
# yapf: disable
some import code
# yapf: enable

I want to add the IndoorPointSample into the __init__ but can not pass the pre-commit. The message in pre-commit always shows:

However, there isn't any fixing in my code after pre-commit. So I temporarily reset my code and want more suggestions.

Maybe that's because yapf and isort has some conflicts here (isort first fix to some style1, and then yapf change it back to original style). You can disable yapf like here to solve this problem.
# yapf: disable
some import code
# yapf: enable

Thanks for your suggestion. After following your instruction, I have passed the pre-commit successfully.


feat(*): reuse preprocessing form fields for config forms and save [khcp-10152]

Summary
https://konghq.atlassian.net/browse/KHCP-10152
Extracted preprocessing form fields logic in reusable helpers, for use in both JSON/YAML config forms and form submission

Looks good in general. Added some minor/nit comments


JAV-105 create microservice from definition

create microservice from microservice definition, and save them in MicroserviceManager

Changes Unknown when pulling 1e6a8260bcf61ee7c0ac5aeca4934d1a4733f8e1 on wujimin:create-from-definition into ** on ServiceComb:master**.


Add new vocabs API

Closes https://github.com/RDFLib/prez/issues/131.
Summary:

New API for client fetching of concept schemes and concepts
Prefix generation is set by default on startup
Add identifier endpoints to provide resolution for IRIs to CURIEs and vice versa
Add parametrised tests

New API for client fetching of concept schemes and concepts
Adds a new set of APIs as described in the linked issue above to enable the ability to fetch a vocabulary of any size in an incremental manner.
Prefix generation is set by default on startup
This PR creates prefixes by default on start up and can be disabled by setting the DISABLE_PREFIX_GENERATION environment variable to false. This default behaviour is required as the new API assumes the endpoints are stateless with no side effects.
Add identifier endpoints to provide resolution for IRIs to CURIEs and vice versa
New identifier endpoints to provide resolution of IRIs and CURIEs.

/identifier/curie/{iri:path}

With an IRI as input, return its identifier in the form of a CURIE.

/identifier/iri/{curie}

With a CURIE as input, return its fully qualified IRI.

These are required to set up parameterised tests by converting IRI inputs into their CURIE identifiers to perform requests to the new vocabulary endpoints. For example, converting parameterised IRIs to perform test requests to /v/vocab/{concept_scheme_curie}/top-concepts.
Add parametrised tests
Basic structure of parameterised tests for each new vocabulary endpoint added with different scenarios tested. New scenarios can be added in the form of another parameterised test.

Thanks for pointing that out @jamiefeiss about the error handling for invalid values on the /identifier/curie/<iri> and /identifier/iri/<curie> endpoints. I've added error handling and tests for them in https://github.com/RDFLib/prez/pull/134/commits/e13e5968fb5640f55bfc0d37de2dcb1f5723eda8.

Won't merge this until prez-ui has an implementation to consume this new API as described in https://github.com/RDFLib/prez-ui/issues/84.

@jamiefeiss I just checked both /top-concepts and /narrowers and they appear to be giving me sorted paginated concepts by label.
Maybe we can catch up tomorrow and you can show me the issue?

See comments here https://github.com/RDFLib/prez/issues/131

Chat in Prez meeting:
Support for client-side "expand all" functionality.
Count
/count
Query parameters:

curie - Prez identifier
inbound e.g. skos:broader
outbound e.g. skos:narrower, skos:inScheme

Returns the entire vocabulary in the old way.
/v/vocabs/{curie}/all
Had discussion with a potential future design where it's a single endpoint and allows for retrieving vocabs at a depth given by query parameter. May follow up in a separate issue.

The sorted pagination issue that @jamiefeiss raised is likely due to triplestore implementation of ORDER BY on strings that have language tags. Solution is probably casting the ?label variable to a string and binding that as a new label with ORDER BY applied to it.

Two new commits:

https://github.com/RDFLib/prez/pull/134/commits/0cb58735c3d011bea49faa6076ea68e807cd681c - Improve error handling for curies and IRI resolution by reusing endpoint functions that already manage HTTP error handling
https://github.com/RDFLib/prez/pull/134/commits/3e63b1aaffb6bd778929d44e60a0dd9e7bff15c2 Order top-concepts and narrower concepts pagination endpoints by casting ?label variable to string using the str() SPARQL function


Bug: keyboard controls in components changes their position

In the component tree, I like to move around with the keyboard (up and down arrow to move and right arrow to open components) just like in the DOM tree.
Moving the selection with up and down arrows makes the components jump around. Seems like their index gets changed and dev tools immediately re-organizes them. This doesn't happen at all when only using the mouse.
This happens almost every time I use the keyboard.

Hey, can you boil down the error and provide a repro using this template or providing a simple HTML page?
Thanks!

I can make a repro with the webpack template but making multiple router views in a codepen is beyond me :|

a single html then 🙂

Ok, good luck and thanks!


Issue with UnzipPipe 7.6-RC1

Describe the issue
In ibis4publishing was in previous versions the UnzipPipe included as custom code (see attatchment), after upgrading to 7.6-RC1 I deleted the custom code and while checking my Larva tests on my local environment I got an error: "nl.nn.adapterframework.core.PipeRunException: cannot unzip: (IOException) Stream closed" (see screenshot and ladybugreport as well).
Reporter
Laura Nauta-Timp
If you have any questions, please contact me.
Pipeline HandleDiPoDLFile_ZippedXMLFile.zip

UnzipPipe.java - previous used custom code.txt

Configuration uses collectResults=true, use of zis ont line 209 misses call to dontClose() like on line241


Unchecking a tag doesn't remove it from the entry.

💻 Environment
Platform: Linux
OS Version: Ubuntu 19.04 x64
Toggl Version: 7.4.456 (installed from a deb)
🐞 Actual behaviour
When unchecking already checked tag nothing happens. It's not synced over to the server and state never changes. You can add only new tags and not remove them.
💯 Expected behaviour
When unchecking a tag it should get removed from the tags list on the time tracker entry.
🔨 Steps to reproduce

Create new entry and start tracking it.
Tick some of the tags.
Click done to verify it saved.
Edit the task again.
Uncheck one of the added tags.
Click done.
Edit the entry again and see that tag wasn't removed.

Verified that the fix works on my end. Thanks.


Proposal/refactor: Drop package level funcs in favor of Newable Go types and Improve package APIs

Current implementation of core code should be refactored with more idiomatic Go code. Changes will make unit testing easier as a side effect which is the second purpose of this proposal.
We need to drop package level functions and create Go types for most of the core packages to attach them as their methods. Converting package level functions to type methods gives a nice isolation, grouped APIs and overall look. It also helps with testing to pass mocking interface/socket in the initialization time with New(options ...Option).
This requires package modifications on container, service and daemon.
This requires code changes on importer, core proto, api/core, api/service and cmd/service.
(we can separate this as 3 PRs -or more- like feature/container, feature/service, feature/daemon)
There are some other packages that needs be refactored too like: database/services, execution etc. But I'll leave them for now and target  these most important three: container, service and daemon.
Container
There is no major changes on container package except all the package level functions is now a method of Container type.
Please check this on going changes on container: https://github.com/mesg-foundation/core/tree/feature/container
Service
Issues

1- Consumers of service package directly uses database/services package to get a Service. This functionality should be provided by service package itself. database/services interactions should be made internally within service package. This is also good for separation of logic in the code and unit testing. (See new Manager API related to this)

2- Manually craft Service, Event, Task, Output, Parameter, Dependency types. I really don't like extending types generated by protocol buffers. It's not possible to add private fields to Service because of that. I need to extend Service type with some private fields to set the container client interface and other information needed by the new version of service API.

Package level functions
Some of the public/private APIs of service package:

service.ParseYAML(data []byte) (Definition, error) > error will be filled validation errors if exists
service.ParseDockerfile(data []byte) (Dockerfile, error) > error will be filled validation errors if exists
service.NewManager(options ...Options) (*Manager, error)
service.LevelDBOption(path string) Option
service.ContainerDockerClientOption(client docker.CommonAPIClient) Option > used to mock container package's Docker Client.

Introduce Manager type
Some of the public/private APIs of Manager:

Manager.GetService(id string) (*Service, error)
Manager.CreateService(definition Definition) (*Service, error)
Manager.CreateServiceFromYAML(data []byte) (*Service, error)
Manager.DeleteService(id string) (*Service, error)
Manager.ListServices(options ...ListServiceOption) ([]*Service, error)

Introduce Service type
Remove the generated Service type by protocol buffers and and create a new Service by hand.
Some of the public/private APIs of Service:
type Service struct {
        ID string
	Definition Definition
	manager *Manager
        container *container.Container
	...
}

Service.ID
Service.Definition
Service.Start() error > call Service.stopDependencies() on partial running.
Service.Stop() error
Service.Status() (container.StatusType, error)
Service.Dependencies() []*Dependency
Service.EventSubscriptionChannel() string
Service.ResultSubscriptionChannel() string
Service.GetEvent(key string) (*Event, error) > error can be nil or EventNotFoundError
Service.GetTask(key string) (*Task error)

Introduce Event type
Remove the generated Event type by protocol buffers and and create a new Event by hand. Some of the public/private APIs of Event:

Event.Key
Event.ValidateParametersSchema(data interface{}) error > error can be nilor InvalidEventDataError

Introduce Task type
Remove the generated Task type by protocol buffers and and create a new Task by hand. Some of the public/private APIs of Task:

Task.Key
Task.ValidateParametersSchema(data interface{}) error
Task.GetOutput(key string) (*Output, error)

Introduce Output type
Remove the generated Output type by protocol buffers and and create a new Output by hand. Some of the public/private APIs of Output:

Output.Key
Output.ValidateSchema(data interface{}) error

Introduce Dependency type
Remove the generated Dependency type by protocol buffers and and create a new Dependency by hand. Some of the public/private APIs of Dependency:

Dependency.Name
Dependency.Logs() (io.ReadCloser, error)
Dependency.start(networkID string) (containerServiceID string, err error)
Dependency.stop() error
Dependency.status() (container.StatusType, error)

Introduce Definition type
type Definition struct {
	Name          string
	Description   string
	Tasks         map[string]*Task
	Events        map[string]*Event
	Dependencies  map[string]*Dependency
	Configuration *Dependency
	Repository    string
}

Introduce Parameter type
Remove the generated Parameter type by protocol buffers and and create a new Parameter by hand.
Introduce Dockerfile type
Dockerfile holds information about parsed Dockerfile of service.
Updates on importer, core proto, api/core, api/service and cmd/service

Do not make direct access to importer from cmd anymore. CoreClient.DeployService()'s CoreClient.DeployServiceRequest will get a YAML (in bytes) field and Service field will be removed. Parsing/Validation of service file should be done with service.ParseYAML(data []byte) (Definition, error) and Manager.CreateServiceFromYAML(data []byte) (*Service, error)
merge service.proto into api.proto and update api/core accordingly to migrate Definition data  gathered from calls to Manager.GetService() and Manager.ListServices() to gRPC response types.
Update Server type of api/core and api/service by adding a service(*service.Service) field. This way it's possible to mock docker API calls initialized by service package inside api/core and api/service. Useful for unit testing of api/core and api/service.
don't do event, task, task output validations within execute or event packages. e.g. event.Create(&service, request.EventKey, data). Instead we should be doing this in the body of gRPC handler func by using validation methods from the updated API of service package described above. Because we need to be sure to validate event, task, output before calling the methods of execute or event packages for the sake of more organized code logic.
use service.ParseDockerfile(bytes) and service.ParseYAML(bytes) for validation command.

Daemon
Package level functions
Some of the public/private APIs of daemon package:

daemon.Namespace() []string
daemon.New(options ...Options) (*Daemon, error)
daemon.ContainerDockerClientOption(client docker.CommonAPIClient) Option > used to mock container package's Docker Client.

Introduce Daemon type
Some of the public/private APIs of Daemon:

Daemon.Start() (containerID string, err error)
Daemon.Stop() error
Daemon.Status() (container.StatusType, error)

Notes

dockertest will be used to mock docker related API calls while unit testing container, service, daemon, api/core and api/service packages.
we should first complete feature/container(refactor and unit test container) PR and then start refactoring feature/service and feature/daemon because these two uses functionalities from container.

"2- Manually craft Service, Event, Task, Output, Parameter, Dependency types. I really don't like extending types generated by protocol buffers. It's not possible to add private fields to Service because of that. I need to extend Service type with some private fields to set the container client interface and other information needed by the new version of service API."
What is wrong with extending the generated types?
What do you suggest to not use the generated files? I'm

What about inherence of the generated types?

+1, we should use generated type, I don't see the point to implement those struct/interface again.

Consumers of service package directly uses database/services package to get a Service. This functionality should be provided by service package itself.

I think this should stay in /database pacakge simply. Like in webservers you have server part and database(ORM) part. They interact at some point. Even more, the database can be not aware of service.Service type and return raw bytes (and converting from raw to struct can be done by some conver interface. But I'm against merging database into service, I'd rather keep them separate.

service.ParseDockerfile(data []byte) (Dockerfile, error) > error will be filled validation errors if exists

Why to keep parse Dockerfile logic in service - it should be seperate package (and based on dockerfile/parser). service should get parserd dockerfile.

service.ParseYAML(data []byte) (Definition, error) > error will be filled validation errors if exists.

Same here, service don't need knowlege about config file (what format etc was used, it only needs the config struct)

service.LevelDBOption(path string) Option

It's related to database option (also name of database inside publi API should be repalced with generic name - soemone don't need to know what database is used internally)

Introduce Manager type

The Manger/ServiceManager type is must have 👍

Manager.CreateServiceFromYAML(data []byte) (*Service, error)

Same as above - Manager dosen't need to know how to how config file will look like.

Introduce Service type

type Service struct {
	manager *Manager
}

Why there is a link between service and manager? Manager is responsible for handling services, not the other way.

Introduce Event/Taks/.... type

It's about implementing all the types, where I agree with @NicolasMahe - we should used the generated files.

1- @NicolasMahe
What about inherence of the generated types?
How do you do to not use the generated files? We could implement the 'proto' interface but i'm not sure it's enough. And also, I really like that we use the .proto file as source of truth with an easy way to apply modification of the .proto file to our codebase.
I strongly disagree.
The thing is it doesn't make sense for me to use gRPC related code, structs or generated proto files in service package. gRPC is just a network layer protocol that exposes core's features to network.
We should distinctly separate core's business logic and network layer from each other and only deal with gRPC related code in the api package.
We should simply think of it like this: Service package exposes fundamental features of core and api package responsible to share those features with the network over gRPC.
Writing less code by is not always good. And I don't want to use weird names while creating an another Service type just because generated go code also use it.
2- @krhubert
I think this should stay in /database pacakge simply. Like in webservers you have server part and database(ORM) part. They interact at some point. Even more, the database can be not aware of service.Service type and return raw bytes (and converting from raw to struct can be done by some converter interface. But I'm against merging database into service, I'd rather keep them separate.
I totally agree with this. We should have a separate database like we do now but call its service set/get/delete/update methods within the service package itself not from the outside.
e.g. remove this this and move to implementation of Manager.CreateServiceFromYAML(data []byte).
3- @krhubert
Why keep parse Dockerfile logic in service - it should be a separate package (and based on dockerfile/parser). service should get parsed Dockerfile.
Dockerfiles totally relevant with services because they describe how a service should run. But after second check I see that we don't actually parse the Dockerfile, instead we check if it's exsits or not.
Maybe we add more validations about it in future. Either case we should should update:

service.ParseDockerfile(data []byte) (Dockerfile, error) > error will be filled validation errors if exists
AS service.ValidateDockerfile(data []byte) error > error will be filled validation errors if exists

Not relevant with this but also update:

service.ParseYAML(data []byte) (Definition, error) > error will be filled validation errors if exists
AS service.ValidateYAML(data []byte) error > error will be filled validation errors if exists

4- @krhubert
Same here, service doesn't need knowledge about config file (what format etc was used, it only needs the config struct)
I don't mind having a Manager.CreateServiceFromYAML(data []byte) (*Service, error) for creating services because YAML is a fundamental part of describing MESG services.

We can add more parser when needed in future. Maybe under service/parser.
e.g. Add a YAML parser: ParseYAML(data []byte) Definition
And use it like: Manager.CreateService(ParseYAML(data)) (*Service, error)

5- @krhubert
It's related to database option (also the name of database inside public API should be replaced with a generic name - someone doesn't need to know what database is used internally)
Doesn't makes much sense to me because every database has their own kind of configuration that we need to pass in the initialization time. e.g. if we use Redis we have to specify a network address alongside database name. So using a special Option for the database we're using makes more sense to me.
6- @krhubert
Why there is a link between service and manager? The manager is responsible for handling services, not the other way.
We may need to get a pointer to database/service and *Container instance to access from Service type.

I think this was recommended by @NicolasMahe too somewhere, we should never use core's packages/methods from cmd package. Instead we can add some more gRPC methods as needed for the job and make cli only communicate with core over network.

as a part of https://github.com/mesg-foundation/core/issues/337#issuecomment-411653741 we should not be calling this in cmd. Instead compress the whole folder in the path and send to core within core.DeployServiceRequest. All validations, building container image and so on should be handled within daemon and if it's successful core. DeployService() will reply with a service if not with errors/validation errors.

A note:
cmd package shouldn't run any business logic of mesg-core/daemon. It has one job, communicate with mesg-core's gRPC API, nothing more. We should thread cmd as a simple client. Think about this, maybe we're going to create more clients that communicates with mesg-core therefore, we don't want to duplicate logic between client and have an absolute separation with server/daemon/mesg-core. Like we can make a web UI for creating services and devs can upload their service folders to deploy and start, stop their services.

We can also wrap codes of each gRPC handler's body in the api package and seperate them to their own methods under another package, this way business logic in the handlers will become agnostic and will no need to be aware of gRPC handlers in the high level.
for ex:
codes in the body of ExecuteTask() can be moved to a such method that expect its own parameters and Options. And we call that method by passing its expected arguments and Options within ExecuteTask() with the values read from request * ExecuteTaskRequest
// ExecuteTask executes a task for a given service.
func (s *Server) ExecuteTask(ctx context.Context, request *ExecuteTaskRequest) (*ExecuteTaskReply, error) {
	reply := &ExecuteTaskReply{}
	// err can be validation errors, ServiceManager.GetService() errors etc.
	execution, err := s.mesg.ExecuteTask(serviceID, task, data, options...)
	if err != nil {
		return reply, err
	}
	reply.ExecutionID = execution.ID
	return reply, nil
}

lets also consider following method to create services from a tar archive.
Manager.CreateServiceFromTar(r io.Reader) (*Service, error) this reads a tar file that contains service program, Dockerfile and a mesg.yaml. error can be validation errors or any kind of other errors produced while creating a service.


Introduce VPC controller

This change introduces a new controller to manage VPCs on Linode. The Cluster object has an optional vpcReference field. The customer should bring them own VPC by setting the label field to the custom resource to pointing to an existing VPC. The machine controller also has been updated to attach new instances to the VPC.
Fixes: https://github.com/linode/cluster-api-provider-linode/issues/4

I have tested this and confirmed a VPC is created and LinodeMachines are attached to that VPC correctly. once other code review comments are resolved this should be good to merge

@eljohnson92 @avestuk I addressedd all the review items, so could you please do the final review (one more commit) and it should be ready to merge.


python310Packages.aioopenexchangerates: 0.4.1 -> 0.4.2

Changelog: https://github.com/MartinHjelmare/aioopenexchangerates/blob/vv0.4.2/CHANGELOG.md
Description of changes

Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

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

3 packages built:

home-assistant-component-tests.openexchangerates
python310Packages.aioopenexchangerates
python311Packages.aioopenexchangerates


GHSA-gm48-83x4-84jg: fix artifact groupId

I think you mean GHSA-hfg5-xpvw-c9x4 for this one, but thanks for the fix 👍
I propagated the fixed groupid to the third product as well


git-node: add --backport flag to land

This commit adds functionality to land that allows you to land backports
with the correct metadata
example: git node land --backport <PR number>
Co-authored-by: @AshCripps<EMAIL_ADDRESS>

I've updated the PR to always place the Backport-PR-URL below the PR-URL in the metadata. I've also created some asciinema of this feature in action
Single commit: https://asciinema.org/a/300758
Multiple commits: https://asciinema.org/a/300808


WIP: feat(STONEINTG-974): filter Scenarios based on Snapshot context

Integration service uses the contexts field to decide when to use IntegrationTestScenarios for the given Snapshot
The new filtering function is applied whenever a list of scenarios is fetched to decide which pipeline to run or when deciding if all required integration test scenarios finished

Maintainers will complete the following section

[ ] Commit messages are descriptive enough (hints)
[ ] Code coverage from testing does not decrease and new code is covered (check the PR coverage on codecov)
[ ] Controllers diagrams are updated when PR changes controllers code  (if applicable)

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

Please upload report for BASE (main@9da84d1). Learn more about missing BASE report.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #817   +/-   ##
=======================================
  Coverage        ?   72.06%
=======================================
  Files           ?       43
  Lines           ?     4020
  Branches        ?        0
=======================================
  Hits            ?     2897
  Misses          ?      844
  Partials        ?      279

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

/test integration-service-e2e


Please support null safety

Error: Cannot run with sound null safety, because the following dependencies
don't support null safety:

package:string_to_color

@hiranthaR You have merged the PR fixing this issue, but you haven't published the v2. Could you please find time to publish it?

@hiranthaR You have merged the PR fixing this issue, but you haven't published the v2. Could you please find time to publish it?

@talamaska I published the code. please check now

thanks


[Ubuntu] Chmod known directories

Description
In scope of this PR, we set chmod 777 on the following known directories:

/opt
/usr/share
/home

The purpose of this PR is bringing some Provisioner legacy scripts to public repo. We already invoke these commands during deployment so we just move it to image-generation stage since they don't depend on user.
Related issue:
Check list

[ ] Related issue / work item is attached
[ ] Tests are written (if applicable)
[ ] Documentation is updated (if applicable)
[ ] Changes are tested and related VM images are successfully generated

/azp run ubuntu1804, ubuntu2004


Please state explicitly that NPM is being deprecated

Howdy y'all!
I see some of the verbiage alluding to the fact, but just for the sake of clarity, could we list out the fact that NPM is being deprecated?
Much obliged!
https://azure.microsoft.com/en-us/updates/we-re-retiring-network-performance-monitor-on-29-february-2024/
Because the new Connection Monitor in Azure Network Watcher enhances your monitoring experience, we retire Network Performance monitor on 29 February 2024. We encourage you to start using the new Connection Monitor in Network Watcher to create new tests and take advantage of the enhanced functionality.

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

ID: ff3ca71d-bc0f-f021-7eda-ed522edfd51e
Version Independent ID: 88d3f691-7358-e1ef-9763-c191d4f42e1a
Content: Network Performance Monitor solution in Azure - Azure Monitor
Content Source: articles/azure-monitor/insights/network-performance-monitor.md
Service: azure-monitor
Sub-service: insights
GitHub Login: @vinynigam
Microsoft Alias: vinigam

@ROSMITHJ-MSFT Thanks a lot for taking time to share your feedback, seems that this update needs to happen at multiple places. We will take this as a backlog item and post review with our internal PG team , will create the PR's accordingly to update the docs.
We will go ahead and close this issue for now, however if you have any further feedback on the document please tag us in your reply and will be happy to reopen the thread and continue the conversation. Thank you


CRITICAL - wstunnel - Unable to start wstunnel. Process return a status code of: 2

I can run the client locally, but wgwst won't start wstunnel.

This is probably caused by the an old wstunnel instance not being closed properly causing the listening port be binded / being in used causing the new instance to fail to start.
You could try, changing the listening port number
wstunnel:
  ...
  - local-to-remote: udp://<IP_ADDRESS>:**NEW PORT**:<IP_ADDRESS>:51820?timeout_sec=0

Or open task manager and end all wstunnel instance

This commit 6cb8c1581fd0b72490392a0bf02cf7c3a0214b47 should fix the issue, you can download the binary here from https://github.com/klementng/wireguard-over-wstunnel/actions/runs/8400394659/artifacts/1352225397 and let me know if it is working


Small typo mistake in README.md

In Authorization section, the document says: "If you performed step 3. in the "Getting started" section, users "kalle", "elina" and "matti" all have the password "password"."
In my case, provided user credentials are available after executing Step 5 (optional), not Step 3. I tried to follow all step except step 5, the result was empty when I executed a query to list all users in GraphQL playground.

That's true, thanks for pointing this out!

That's true, thanks for pointing this out!


[RFC] Flatten PartialX Types with X

discord doesn't always end us the full data, which is handled by creating partially duplicate types such as https://api.twilight.rs/twilight_model/guild/struct.PartialMember.html and https://api.twilight.rs/twilight_model/guild/struct.Member.html but this comes with the obvious problem of duplicate fields
it also makes generalizing things more involved (implementing X trait on members means implementing it on Member and PartialMember, most likely duplicating much of the function body because of type-safety), this came up in the now-stale cdn endpoints creator module and happens in twilight-mention (for example Mention isnt implemented for PartialMember or PartialUser and it's implemented twice for User and CurrentUser)
proposal
essentially rename PartialX to X, add an Option<Enum> field to X, where Enum has variants for each of the specialized fields
struct MemberMessage {
  permissions: Option<Permissions>,
  // other fields specific to `PartialMember`
}

struct MemberUpdate {
  flags: MemberFlags,
  // other fields specific to `MemberUpdate`
}

enum MemberData {
  Message(MemberMessage), // what's currently named `PartialMember`
  Update(MemberUpdate),
}

struct Member {
  id: Id<UserMarker>,
  // common fields across all `Member` types
  data: Option<MemberData>, // can be non-option if there's always some variant that's returned
}

this would also improve documentation, currently we have many duplicate types that aren't put in the same module
drawbacks

sometimes we might not know which variant to use, meaning we want to use serde's untagged representation
sometimes the main struct might not be enough for some methods, meaning those methods fail if the data's variant isn't expected, see alternative for a solution
there will still be duplicate fields across different enum variants, unless we nest enums inside enums which i think is going too far
adding new variants is a breaking change unless we make the enums #[non_exhaustive] which might be inconvenient to work with for the users, see alternative for a solution

alternative
we could also make the types have a generic parameter which is used in the data field, this solves some of the drawbacks but introduces others, see below for them
struct MemberMessage {
  permissions: Option<Permissions>,
  // other fields specific to `PartialMember`
}

struct MemberUpdate {
  flags: MemberFlags,
  // other fields specific to `MemberUpdate`
}

struct Member<T> {
  id: Id<UserMarker>,
  // common fields across all `Member` types
  data: T,
}

// `Member` will be used like
Member<NoData> // akin to `Member.data = None`
Member<MemberMessage>
Member<MemberUpdate>

drawbacks

not applicable when we don't know the type of the data field
might make it harder for users to know what T can be, we could implement a marker trait for possible T types

I don't think that we should implement this.
This increases the complexity to work with normal - non partial - structs. I don't think that this is good DX:
let member = get_member();
let flags = match member {
    MemberData::Message(data) => data.flags,
    _ => unreachable!(),
}

vs.
let member = get_member();
let flags = member.flags;

This is imho the biggest drawback. You know for 100% which variant it is - e.g. because the member comes from a GuildMemberAdd event - but you still need to match the enum, in order to get the data out.
Additionally we would also need to implement custom deserializers for every struct which has a partial representation, which is also not really feasible.
Generally imho there are too many drawbacks compared to the few benefits this would bring.
Keeping code DRY is definitely something we should keep in mind, but overdoing it is also not good, we need to find the middle way.

Drive-by contribution.

This is imho the biggest drawback. You know for 100% which variant it is - e.g. because the member comes from a GuildMemberAdd event - but you still need to match the enum, in order to get the data out.

Just want to mention let-else as a better alternative to matching:
let member = get_member();
let MemberData::Message(data) = member else { unreachable!() };
let flags = data.flags;


[exporter/jobs] consolidate node not avail reason

Consolidate the unavailable node reason from
(ReqNodeNotAvail, UnavailableNodes:cs[100,101,102,...])

To
(ReqNodeNotAvail, UnavailableNodes)

and allow spaces in state reason in response to the following logs:
level=ERROR msg="squeue failed to pull pending state reason. Got state reason: (Nodes required for job are DOWN, DRAINED or reserved for jobs in higher priority partitions)"

Testing

unit tests modified

Thanks!


Homework-9

Metric
Value

alert_status
b:white_check_mark: OK/b

bugs
0

code_smells
1

reliability_rating
A (0 Bugs)br/Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)br/Note: A being best, E being worst

vulnerabilities
0

Metric
Value

alert_status
b:white_check_mark: OK/b

bugs
0

code_smells
0

reliability_rating
A (0 Bugs)br/Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)br/Note: A being best, E being worst

vulnerabilities
0


disable no-multi-str

I'm being warned that multiline support is limited to browsers supporting ES5 only. (no-multi-str)
foobar = 'This is a multiline \
string that is allowed by the rules \
but I am being warned anyway.'

Multiline strings aren't prohibited by the rules here: https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
I don't imagine we want the warnings to prevent usage of features found only in ES5 and above.  Let's disable this warning.
Standard version is 7.1.1.

This is preferred:
foobar = 'This is a multiline \n' +
'string that is allowed by the \n' +
'rules'

Ugh.  Mind telling me why?

https://github.com/feross/standard#i-disagree-with-rule-x-can-you-change-it

At the end of the day you have to 'just pick something', and that's the whole philosophy of standard -- its a bunch of sensible 'just pick something' opinions. Hopefully, users see the value in that over defending their own opinions.

I agree wholeheartedly with the philosophy of the standard.  I'm genuinely curious about the rationale for this one.

They're exactly equivalent, so we prefer having only one way to do things.

Got it, thank you.

Also, if the js runtime youre using supports multiline strings, then it
probably also supports template strings, which you can use for multiline
too with a much better syntax.
On Fri, May 27, 2016, 10:40 AM David Braun<EMAIL_ADDRESS>wrote:

Got it, thank you.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/feross/standard/issues/532#issuecomment-222046900,
or mute the thread
https://github.com/notifications/unsubscribe/AAEikUM02thufamLmM2UXYO079UgBZ1yks5qFlmOgaJpZM4IntKV
.

THANK YOU!  You just made my night!


Update actionw workflows

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


chore: remove CloseThreadpoolCleanupGroupMembers function call

    LONG current_pending_api_calls = InterlockedAdd(&threadpool->pending_api_calls, 0);

can threadpool use SM?

Refers to: win32/src/threadpool_win32.c:88 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)

int threadpool_open_async(THREADPOOL_HANDLE threadpool, ON_THREADPOOL_OPEN_COMPLETE on_open_complete, void* on_open_complete_context)

There's nothing asynchronous about the nature of this open. It doesn't start any underlying IO that could take time AND it returns on the same thread.
It also calls its callback on the same thread.
so why:

is called async?
has a callback?

Refers to: win32/src/threadpool_win32.c:191 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)

TEST_FUNCTION(chaos_knight_test_with_timers)

seeing as we didn't write a test that failed for the removal of the CloseThreadpoolCleanupGroupMembers and then the same test is passing with the new code, I think we're missing tests.
I don't think it is a bad idea to have that test, otherwise, how would we know we fixed anything?

Refers to: win32/tests/threadpool_win32_int/threadpool_win32_int.c:1106 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)

TEST_FUNCTION(chaos_knight_test_with_timers)

Also sort of points out to chaos not being enough or complete enough.

In reply to:<PHONE_NUMBER>

Refers to: win32/tests/threadpool_win32_int/threadpool_win32_int.c:1106 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)

TEST_FUNCTION(chaos_knight_test_with_timers)

Yeah, I am curious what happens in the next iteration, so waiting.

In reply to:<PHONE_NUMBER>

Refers to: win32/tests/threadpool_win32_int/threadpool_win32_int.c:1106 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)

    LONG current_pending_api_calls = InterlockedAdd(&threadpool->pending_api_calls, 0);

Maybe after I do this PR I will look at adding SM.  I don't want to change this that much at this time and want to focus on fixing ZRPC's failure now.

In reply to:<PHONE_NUMBER>

Refers to: win32/src/threadpool_win32.c:88 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)

int threadpool_open_async(THREADPOOL_HANDLE threadpool, ON_THREADPOOL_OPEN_COMPLETE on_open_complete, void* on_open_complete_context)

This is a valid question, but not apart of this PR.  Maybe we can have another meeting and talk about the API and make changes.

In reply to:<PHONE_NUMBER>

Refers to: win32/src/threadpool_win32.c:191 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)

int threadpool_open_async(THREADPOOL_HANDLE threadpool, ON_THREADPOOL_OPEN_COMPLETE on_open_complete, void* on_open_complete_context)

I've been wanting to make threadpool_open (not threadpool_open_async) for a while because I have to keep using the sync wrapper and there's no good reason.
Would love this change! (but agree it's not related to this PR)

In reply to:<PHONE_NUMBER>

Refers to: win32/src/threadpool_win32.c:191 in d9da1a3. [](commit_id = d9da1a3f2413edbbe47ec5ceb6e7501924a21e48, deletion_comment = False)


add pre-commit checks for code quality

Codecov Report

Merging #19 (fdecd96) into master (d14a57b) will decrease coverage by 0.06%.
The diff coverage is 96.96%.

@@            Coverage Diff             @@
##           master      #19      +/-   ##
==========================================
- Coverage   95.63%   95.57%   -0.07%
==========================================
  Files           6        6
  Lines         504      497       -7
==========================================
- Hits          482      475       -7
  Misses         22       22

Impacted Files
Coverage Δ

tplot/scales.py
97.77% <ø> (ø)

tplot/__init__.py
77.77% <50.00%> (ø)

tplot/braille.py
100.00% <100.00%> (ø)

tplot/figure.py
96.38% <100.00%> (-0.08%)
:arrow_down:

tplot/img2ascii.py
95.23% <100.00%> (-0.22%)
:arrow_down:

tplot/utils.py
92.79% <100.00%> (ø)

Continue to review full report at Codecov.

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


dashboard: make keyvisual works in follower

Signed-off-by: nolouch<EMAIL_ADDRESS>
What problem does this PR solve?
RaftCluster only runs in the leader,  change to BasicCuster
What is changed and how it works?
let follower can get region information.
Check List
Tests

Manual test (add detailed scripts or steps below)
checked all keyvisuals are work well.

/rebuild

/merge


Alert type for checking if any of aggregated buckets exceeds num_events

Hello,
recently I've encountered a problem in elasticsearch, and currently I am searching how can I perform a query like:
{     "size": 0,     "filter": {         "range": {             "@timestamp": {                 "from": "now-1h/h",                 "to": "now"             }         }     },     "aggs": {         "things": {             "terms": {                 "size": 0,                 "field": "single_thing_field_name"             }         }     }
That extracts aggregation buckets and then checks if count of any of these buckets exceeds num_events. If it does, it should issue the alert, with the value of the single_thing_field_name.
I would like to know if I missed something in the docs, or this is impossible.
Thanks.

type: frequency
num_events: x
timeframe:
  hours: 1
use_terms_query: true
doc_type: whatever _type is
query_key: single_thing_field_name

Thank you, gonna test it tommorow! Already forked it and started to make my own rule type, lol.


TEST: DO NOT MERGE

I am making a fake PR to find out which VMware CLA this project actually requires (or whether I get cla request at all?). Please do not merge in any case

Interesting:

I've signed the CLA for triggered by commits from<EMAIL_ADDRESS>while I was not employed
Now I made commits with<EMAIL_ADDRESS>(CLA is not legally active: I do not have the permissions to just sign away the copyright) but it looks like clabot considers CLAs per user, not per email so it does not complain

So I'm still not sure which document is the actual CLA -- I think it's the last one on https://cla.vmware.com/cla/preview but have no hard knowledge (this info isn't stored in PRs where clabot is active).

So I'm still not sure which document is the actual CLA -- I think it's the last one on https://cla.vmware.com/cla/preview but have no hard knowledge (this info isn't stored in PRs where clabot is active).

Yes it is the last one: CCLA stands for Corporate Contributor Agreement.

Closing -- testing was succesful, although I have no idea what to do now...


Feature Request: List by rules by tag

Feature request
It seems a CloudFormationLintRule's tags are only used for when generating documentation.  How about a feature where if we did something like:
cfn-lint --list [ <tag>, <tagN> ]

... we could filter the results by rule tag.
Usage would look like:
cfn-lint --list              # all rules
cfn-lint --list s3           # all rules tagged with s3
cfn-lint --list s3 ec2       # all rules tagged with s3 or ec2

as the list of rules continues to grow this could be a helpful feature.

Usually just search https://github.com/aws-cloudformation/cfn-python-lint/blob/master/docs/rules.md itself
Also helps in case any tags are missing as well
Definitely want to continue improving that documentation though: (https://github.com/aws-cloudformation/cfn-python-lint/pull/1374, https://github.com/aws-cloudformation/cfn-python-lint/pull/1517, https://github.com/aws-cloudformation/cfn-python-lint/pull/1519, https://github.com/aws-cloudformation/cfn-python-lint/issues/1587, https://github.com/aws-cloudformation/cfn-python-lint/issues/1641, general formatting)


Synthesis failed for vision

Hello! Autosynth couldn't regenerate vision. :broken_heart:
Here's the output from running synth.py:
PR already exists: https://github.com/theacodes/google-cloud-python/pull/2

Google internal developers can see the full log here.

Autosynth passed, closing! :green_heart: