After submission, user should be redirected to record or recordset

After the user submits the data and it is properly updated in the database, the user should be redirected to the record app if one entry was submitted or recordset if multiple entries were submitted.

The data entry app now redirects to the record app when the user successfully submits data. The redirect url is built by selecting the key with the smallest number of columns and appending that key's columns and their values to a base url.
I haven't fully implemented the redirect to recordset yet because we don't support multi-row insertion yet.
I have 2 questions for @karlcz and @robes:

@karlcz says the best "primary key" to use in the redirect is one with the smallest colset and all its columns have a nullok of false. But what happens if only some or none of the columns have a false nullok? Should I calculate the key with the highest percentage of columns with false nulloks?
Should I have also implemented the multi-row redirect to recordset?

If there really aren't any keys that are completely nullok=false, that means there is no "primary key" and it's a pretty bizarre table.  All bets are off at this point, and I'd just take the shortest unique key as a fallback.

In that ermrestjs pull request I recently created, I added that “simple” flag which can tell you if a key is made of a single column. But you can also look at the recordset app which picks the shortest key from the set of keys to link to the record app. This is something we should probably think about a good ermrestjs api…

@robes Thanks for the heads up; the recordset app's way of finding the shortest key is a lot cleaner to read than my original for loop.
It would be nice to have some sort of "primary key"-esque flag in ermrestjs so that we don't duplicate the code to find this shortest key in multiple Chaise apps. Maybe it could be something along the lines of table.[uniqueId | uniqueKey].get(). If not, we could also abstract it away to the common/ folder, but it feels strange to put this kind of key-finding operation in Chaise.

I tested this on @howdyjessie's dev environment on dev isrd and found a small bug that was fixed. Tested again after and it's working properly. I reviewed the code as well.
It currently only redirects to record app as the form does not yet allow multiple rows to be submitted at once.


Replace ServerErrorMiddleware with own exception printer

PR Checklist

[x] Have you followed the guidelines in CONTRIBUTING.md?
[x] Have you got 100% test coverage on new code?
[ ] Have you updated the prose documentation?
[ ] Have you updated the reference documentation?

This PR replaces Starlette's ServerErrorMiddleware with custom exception printer. See #672
This is how it looks. I copied styles from the docs
https://user-images.githubusercontent.com/153191/199689795-698af4fa-0b6c-4cbf-93b9-8440c6477505.mp4
It also supports exception causes.
Unfortunately my experiments with adding locals values and request details have failed: it is too hard to do this without proper template engine. So I will create a custom project somewhere this month which would extend capabilities of the current exception renderer. Also it seems we would be able to provide a debugger similar to Werkzeug debugger. This is where we I would require assistance from dkress59 :-)

If you want assistance making the template look good, we can ask @dkress59 to give you a hand.

Damn, I have to run some errands. I'll be back in 2.5 hours and fix pre-commit complaints I accidentally introduced with the latest force push


chore: redo typo PR by sfyll

Thanks sfyll for https://github.com/AztecProtocol/aztec-packages/pull/8994. Our policy is to redo typo changes to dissuade metric farming. This is an automated script.

Docs Preview
Hey there! 👋 You can check your preview at https://66fed8a01ba990f194489c8a--aztec-docs-dev.netlify.app


good to seed

This should be good now.

Updated cart model to populate User and Item models

To run

Delete the current database
Seed the seed file (in the db folder)
????


Multi-Tenancy Support

Hello CAP Community,
We operate a multi-tenant CAP application and have currently implemented the creation of NotificationTypes and the sending of notifications via API calls ourselves. To improve maintainability, promote standardization, and eliminate custom code, we now want to switch to the cap-js/notifications plugin. We have noticed that the plugin requires a destination to the notification endpoint for creating NotificationTypes during deployment. This must be in the provider account. This logic is implemented in the getNotificationDestination method in utils.js. Because the destination is always taken from the provider account, we therefore assume that multitenancy is currently not supported.
Are there any plans to make the plugin usable for multi-tenant CAP applications?
I would like to briefly describe how we handle the sending of notifications in our multi-tenant application: When implementing our own solution, we found that NotificationTypes need to be rolled out per tenant. This raised the question of how to automate the rollout of these types to all tenants during deployment. Technically, this means that you need to read the "SAP_Notification" destination from all tenant subaccounts using a tenant-specific JWT token (which can be passed to the getDestination method from @sap-cloud-sdk/connectivity, but is only available at runtime) and then trigger the endpoint for creating/updating accordingly.
How did we solve this? We do not roll out the NotificationTypes directly during deployment but check in a tenant-specific context before each time a notification is send whether the NotificationType referenced in the notification already exists and respond accordingly.
Thank you in advance for your support!

Are you talking Portal Sites or Workzone Standard?
I think we are kind of in the same boat, when to call the NotificationTypes API to declare the types we want to publish.
As you suggested @sap-cloud-sdk/connectivity should read the subscriber destination first then then fall back to the provider if not found, which means the destination needs to be setup first before registering the NotificationTypes vai the API.
Pretty easy to create your own destination on the fly programitcally, but where are the client credentials.
You get them in Workzone Site Manager using this
https://<>.dt.launchpad.cfapps.<>.hana.ondemand.com/notification/servicekeys
This should be an API in the SAP Business Acceeelator Hub, but so should SAP Notifications, this plugin shoud be calling a cds.remote.service it is OData after all.
I think the landscape here changes Q1 2025 with the Enabling embedded sites as local entry point for multitenant business solutions which hopefully gets rid of the needed to use a Workzone Standard subscription on the subscriber account and makes the onboarding a bit simpler.


Remove {find,fix,merge}_outdated_appcasts scripts

Refs https://github.com/caskroom/homebrew-cask/issues/25926

We could also remove the develop_brew_caskand production_brew_cask scripts.


cant listen along on spotify with friends

i try to listen along with friends and it just loads then spotify starts flashing in the taskbar. worked fine for a while but now it doesnt work

This is out of the scope of this plugin. Might be an issue with discord itself or you might not have your spotify account properly connected to discord. The plugin just fakes premium, the actual listen along thing is done by discord itself.


Emotional Faces - Instruction Recordings and New Slides

Hola,
Here are the most updated slides: Emotional_Faces_Instructions_9_9_22.pptx
And here are the recordings:
FacesTaskInstructions.zip
Thanks!

updated. thanks!


Fix error detection on Windows

Windows builds failed to report an error if it didn't occur
on the last command of the build. Batch files have no equivalent
for "set -e"; instead we need to check after each command for
the return value and exit if it is non-zero.
Fix for #391

@essen oh nice! I wasn't expecting a PR to fix the issue, this is awesome. I'll get it tested today and if all goes well, I'll publish another beta for you to check out.

Me neither. :-)
I've had it running all day (copied the .exe onto the previous beta install). Double checked every time, haven't seen a problem so far. Looking forward to new beta!

I’d suggest when we test this we should make sure it doesn’t have issues if flow control is used in the supplied script.
Also worth noting that this won’t do anything about batch scripts which delimit commands with ;, while our bash set -e behaviour does - is that a problem?

I did not know batch had ; so the problem didn't even occur to me. My needs are very small (simple list of commands, one per line) so I would not be surprised if many cases are not covered. And my knowledge of batch even smaller.

I did some testing of this yesterday, and @ticky is right that we have problems when it comes to ; - however - our current implementation has this problem already. Since we ECHO each line, it will already break up command that are across multiple lines (like conditionals) and things with ;.
So since we have this problem already, I'm gonna merge this in and push out another beta to get @essen's stuff working. Perhaps in 3.1 we can take another look at how those commands are handled and make it better.
An idea I had was:
steps:
  - command:
     - "ECHO first command"
     - "./foo.batch"

So if peeps had complex command setups (and didn't want to put it all in a script) we could support this syntax, and then put the "ECHO" and exit status checking after each.

Cheers!

@essen sorry for the lateness, but I've just pushed out another beta with your fix! https://github.com/buildkite/agent/releases/tag/v3.0-beta.12


LuaJ doesn't seem to support Var Args

(I am aware I may be mistaken, but it's worth sharing)
It appears that Luaj does not support Lua var args properly.
The following code

local function n(...)
    local count = 0;
    for i, s in ipairs(arg) do
        count = count + 1;
    end
    return count
end

print(n('asdf', 'qwerty'))

prints the value of "2" in Lua on the repl, but the following Java code

@org.junit.Test
public void shouldHandleVarArgs() throws ScriptException {
    //given
    final java.io.StringWriter luaStdOut = new java.io.StringWriter();
    final org.luaj.vm2.script.LuaScriptEngine luaScriptEngine = new org.luaj.vm2.script.LuaScriptEngine();
    luaScriptEngine.getContext().setWriter( luaStdOut );
    final String scriptCode = "local function n( ... ) local count = 0; for i,s in ipairs(arg) do count = count + 1;  end return count end print( n( 'asdf', 'qwerty' ) )";
    final javax.script.CompiledScript script = luaScriptEngine.compile( scriptCode );

    //when
    script.eval();

    //then
    assertThat( luaStdOut.toString().replaceAll( System.lineSeparator(), "\n" ), is(equalTo("2\n")) );
}

using

<dependency>
	<groupId>org.luaj</groupId>
	<artifactId>luaj-jse</artifactId>
	<version>3.0.1</version>
</dependency>

running JDK 1.8.0_144 on Windows 7 it fails with the error

org.luaj.vm2.LuaError: script:1 bad argument: table expected, got nil

    at org.luaj.vm2.LuaValue.argerror(Unknown Source)
    at org.luaj.vm2.LuaValue.checktable(Unknown Source)
    at org.luaj.vm2.Varargs.checktable(Unknown Source)
    at org.luaj.vm2.lib.BaseLib$ipairs.invoke(Unknown Source)
    at org.luaj.vm2.LuaClosure.execute(Unknown Source)
    at org.luaj.vm2.LuaClosure.onInvoke(Unknown Source)
    at org.luaj.vm2.LuaClosure.invoke(Unknown Source)
    at org.luaj.vm2.LuaClosure.execute(Unknown Source)
    at org.luaj.vm2.LuaClosure.onInvoke(Unknown Source)
    at org.luaj.vm2.LuaClosure.invoke(Unknown Source)
    at org.luaj.vm2.script.LuaScriptEngine$LuajCompiledScript.eval(Unknown Source)
    at org.luaj.vm2.script.LuaScriptEngine$LuajCompiledScript.eval(Unknown Source)
    at org.luaj.vm2.script.LuaScriptEngine$LuajCompiledScript.eval(Unknown Source)
    at LuaJDemoTest.shouldHandleVarArgs(LuaJDemoTest.java:103)

but after changing scriptCode to the following

final String scriptCode = "local function n( ... ) local count = 0; return 2 end print( n( 'asdf', 'qwerty' ) )";

the test passes.
From Programming in Lua is the line

The three dots (...) in the parameter list indicate that the function has a variable number of arguments. When this function is called, all its arguments are collected in a single table, which the function accesses as a hidden parameter named arg.

I don't know if this is still how varargs work in Lua 5.2. I always did something like this:
function f(...)
  for i,v in ipairs({...}) do
    print(i,v)
  end
end

...but I don't know if this works, I am just passing by and haven't run it.

You must use ... or {...} (if you need table).
LuaJ worked as Lua 5.2, not as Lua 5.1.
You can check your example  on https://www.lua.org/cgi-bin/demo - it issue error.

So this issue can be closed?

Yep.


File to import not found or unreadable:

I have a system/site that i have been using sass with for 5 years on latest update I get files not found/ failed to import, in my file I have these:
@import "compass/css3/opacity";
@import "compass/css3/border-radius";
@import "compass/css3/transition";
@import "compass/css3/images";
@import "compass/css3/box-shadow";
@import "compass/css3/animation";
Scout tells me on initial install: File to import not found or unreadable: compass/css3/opacity.
Scout is supposed to ship with this, indeed I can see it in the App's folder 'node_modules' so why doesn't it import them automatically?
I also put the compass files directly into my project folder in correct place and it still doesn't work.
If this stuff is shipped with your App surely it should work out of the box, and if my paths need to change to my compass where is the info? Why has it changed? on looking everything seems to be there?

You can follow these instructions:

https://github.com/scout-app/scout-app/issues/408

Though you should also look into if you need these anymore. Unless you are supporting very old browsers you likely can remove your reliance on Compass's CSS3 mixins as all browsers support these properties now (and have for 7+ years). Compass is also deprecated.

Happy to get rid of compass, but what about browser prefixes and the different way different browsers implement styles? Is there a simpler library of mixins I can get into my project you'd recommend?


[TASK] Integrate back-end with Pool Overview Component in Hubble Stats

Implement functionality to dynamically fetch and display the data for the Pool Overview component on Hubble Stats.

Also make some updates of existing components from Volume to Deposit data for clearer UI for users

Steps:

utitlize data from webb-tools/vanchor-client to display info on UI
Update based on new design


Waterlee-Boilerplate and Magento EE 1.14.2

Hey guys,
I have installed this awesome theme on newest Magento EE 1.14.2. Followed all the instructions however getting odd white page screen on homepage. system.log shows
Not valid template file:frontend/waterlee-boilerplate/default/template/page/2columns-right.phtml
any hint??

Hi,
Thanks for kind words.
Unfortunately we didn't test our theme on Magento EE. Community edition only, but If we get this opportunity, we will let you know.

Hey Marjan
Thx for quick response.
Just tested it on vanilla magneto CE 1.9.1 but getting the same white page error,

Hey marjanbonus ,
Working fine now. I m testing it with latest Magento EE.
thx

Did you check on the dependencies ?You have to install Bower and make sure all your dependencies are in.
Joshua Kincheloe
<EMAIL_ADDRESS>Http://jkdreaming.com
5133091619

On Sep 7, 2015, at 7:20 AM, brainworker<EMAIL_ADDRESS>wrote:
Hey guys,
I have installed this awesome theme on newest Magento EE 1.14.2. Followed all the instructions however getting odd white page screen on homepage. system.log shows
Not valid template file:frontend/waterlee-boilerplate/default/template/page/2columns-right.phtml
any hint??
—
Reply to this email directly or view it on GitHub.


Properties for self-managed camunda8 with identity, keycloak and TLS

Hi community,
I am struggeling to configurating the connection properties for a self-hosted camunda8 (v.8.5). Whould it be possible that someone could provide an template yaml or properties file for this szenario? Besides this, is there a list of all properties which I can configure in my yaml or properties file?
Greeting
Christian

Hi Christian,
We are struggling with the configuration as well. By coincidence "it worked on my machine", because I had legacy environment variables set. So our recipe for now is:
application.yaml :
camunda:
  client:
    mode: oidc
    tenant-ids:
    - my-tenant
    auth:
      oidc-type: keycloak
      issuer: https://keycloak-service.my-domain/realms/my-realm
      client-id: <REDACTED>
      client-secret: <REDACTED>
    zeebe:
      enabled: true
      gateway-url: http://localhost:26500
      base-url: http://localhost:8080
      prefer-rest-over-grpc: false
      audience: zeebe-api
    operate:
      enabled: true
      base-url: http://localhost:8081
      audience: operate-api

Plus environment variables:
export ZEEBE_CLIENT_ID=<REDACTED>
export ZEEBE_CLIENT_SECRET=<REDACTED>
export ZEEBE_AUTHORIZATION_SERVER_URL=https://keycloak-service.my-domain/realms/my-realm/protocol/openid-connect/token

Hope this helps!

This is documented here: https://github.com/camunda-community-hub/spring-zeebe?tab=readme-ov-file#oidc

Do I need tenant-ids?

As you select a camunda.client.mode, the <default> tenant is automatically applied


Think about to fix the issues found by adapter checker

I am an automatic service that looks for possible errors in ioBroker and creates an issue for it. The link below leads directly to the test:
https://adapter-check.iobroker.in/?q=https://raw.githubusercontent.com/rbrunka/ioBroker.windhager

[ ] [E103] common.name in io-package.json must be equal to "windhager". Now is iobroker.windhager
[ ] [E105] Title should not have ioBroker in the name. It is clear, for what this adapter was created. Now: iobroker windhager adapter
[ ] [E106] Title should not have word "adapter" in the name. It is clear, that this is adapter. Now: iobroker windhager adapter
[ ] [E150] No common.connectionType found in io-package.json
[ ] [E152] No common.dataSource found in io-package.json
[ ] [E301] Tests on Travis-ci.org are broken. Please fix.
[ ] [E605] No actual year found in copyright. Please add "Copyright (c) 2021 Roman Brunka<EMAIL_ADDRESS>at the end of README.md
[ ] [E701] No actual year found in LICENSE. Please add "Copyright (c) 2021 Roman Brunka<EMAIL_ADDRESS>at the start of LICENSE
[ ] [E816] file tsconfig.json found in repository, but not found in .npmignore

I have also found warnings that may be fixed if possible.

[ ] [W400] Cannot find "windhager" in latest repository
[ ] [W505] setTimeout found in "main.js", but no clearTimeout detected

Thanks,
your automatic adapter checker.
P.S.: There is a community in Github, which supports the maintenance and further development of adapters. There you will find many experienced developers who are always ready to assist anyone. New developers are always welcome there. For more informations visit: https://github.com/iobroker-community-adapters/info

Do you need help fixing the bugs?


io.c fixes to build in Visual Studio

Visual Studio has no definitions for the following:
S_IRUSR, S_IWUSR, O_SYNC, S_ISREG and S_ISDIR
I was able to provide substitutes for all but O_SYNC which i set to 0
I also fixed a type in one of the comments

Super groovy, thanks! Hopefully this will get Windows back in shape.

I still need to clean up the Visual Studio project, unfortunately it makes assumptions on where libuv is located.  Unless you think otherwise I will change it to assume that libuv is present at the same directory level as wren and issue another pull request.

I still need to clean up the Visual Studio project, unfortunately it makes assumptions on where libuv is located.

Thanks for looking at that! I don't have a Windows machine, so I rely on contributors to keep the VS project in good shape.

Unless you think otherwise I will change it to assume that libuv is present at the same directory level as wren

For what it's worth, on Mac and Linux, the makefile downloads it into deps/libuv. Putting it there on Windows would be consistent and also makes sure it's correctly .gitignored.
Another PR would be rad. :)


refactor: Drop some unused code

The new commit 0768803 also drops nodeId parmeter in some places where it was just used in logs but that should be fine?

The new commit 0768803 also drops nodeId parmeter in some places where it was just used in logs but that should be fine?

Pls see https://github.com/UdjinM6/dash/commits/pr3919 for a couple of suggestions

Pls see https://github.com/UdjinM6/dash/commits/pr3919 for a couple of suggestions

@UdjinM6 Picked 6fa44429ddf2fef9903332e7eb0c472cd61e3bc7. The other two also make sense but maybe better in a seperate PR since it exceeds the "drop unused" topic a bit, no? :D


Update SO:0001900

Hello,
I would like the name and def of SO:0001900 tweaked
new primary name: Atf1/Pcr1 recognition motif
new consensus:  GNVTATGACGTCATNBNC
Reference: PMID:15716492
Cheers
Antonia

Hi @Antonialock,
We have had some problems with compatibility when we change names, so I added an exact synonym. This will be available on the SO Browser within the next 24 hours or so.
Thanks,
Dave


python310Packages.chess: 1.8.0 -> 1.9.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python310Packages.chess is: "A chess library for Python, with move generation, move validation, and support for common formats"
meta.homepage for python310Packages.chess is: "https://github.com/niklasf/python-chess"
meta.changelog for python310Packages.chess is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS

The tests defined in passthru.tests, if any, passed

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 1.9.0 with grep in /nix/store/05584nja539fmw4522k2gn4ar7xzx19c-python3.10-chess-1.9.0

found 1.9.0 in filename of file in /nix/store/05584nja539fmw4522k2gn4ar7xzx19c-python3.10-chess-1.9.0

Rebuild report (if merged into master) (click to expand)

4 total rebuild path(s)

2 package rebuild(s)

2 x86_64-linux rebuild(s)
2 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
python310Packages.chess
python39Packages.chess

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/05584nja539fmw4522k2gn4ar7xzx19c-python3.10-chess-1.9.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python310Packages.chess https://github.com/r-ryantm/nixpkgs/archive/eb8d013b6b5a7c8b7eb8f4e6eae2c69e4eb09c3b.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/05584nja539fmw4522k2gn4ar7xzx19c-python3.10-chess-1.9.0
ls -la /nix/store/05584nja539fmw4522k2gn4ar7xzx19c-python3.10-chess-1.9.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

2 packages built:

python310Packages.chess
python39Packages.chess

Maintainer pings
cc @smancill for testing.

Result of nixpkgs-review pr 164747 run on x86_64-darwin 1

2 packages built:

python310Packages.chess
python39Packages.chess


Accessibility issues

When running accessibility tests throughout the site, I encountered the below.

Form elements in sign up form do not have associated labels (Newsletter)

 element does not have a lang attribute

Could we get more detail on this issue to allow for resolution?

On the form issue, the lack of labels on the newsletter signup breaks the style guide:
http://styles.iatistandard.org/developer-guide/forms
I don’t know if that’s a problem for you.
But if you also exclude aria-labels, then that’s likely a problem for anyone using a screenreader. I’ve addressed this bit in #228. I haven’t addressed it in the pattern library, because the form that’s there does use a label of some form.

Moved to the PL repo: https://github.com/IATI/IATI-Pattern-Library/issues/94


[FLINK-11589][Security] Support security module and context discovery via ServiceLoader

What is the purpose of the change
This PR refactors SecurityUtils.class in flink-runtime and replace with an extendable module based on the service provider pattern. With this extension, users can {create extendable security modules](https://docs.oracle.com/javase/tutorial/ext/basics/spi.html) with 3rd-party implementations.
Brief change log

Added SecurityFactoryService class for discovering installed SecurityFactory(s) in the classpath.

Extended into SecurityModuleFactory and SecurityContextFactory.

Replace SecurityUtils with SecurityEnvironment class that holds all installed security-related objects.
Replace current security installation process with a 2-step installation - first install security module(s) per user-defined properties, then install security context based on security modules and properties
Refactored current Hadoop/JaaS/Zookeeper modules into extendable class.

Verifying this change
This change is already covered by existing tests in flink-runtime and ITCases in YARN and Kafka modules, also added to the tests:

Modified YARN and Kafka test modules to install modules/context through service provider discovery
Included test module factories and a default security context factory in test path.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no - changes CLI options though
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: yes
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? yes
If yes, how is the feature documented? CLI doc updated

One thing I noticed is that the list of factories is still hard coded in SecurityConfiguration. If users want to implement their own factories, how would they be picked up?

@walterddr I rebased this and pushed some changes to your PR (I hope that's ok).
I removed the factories package and instead moved the factories to the same module as either the contexts or modules. Before, the factories package had factories for both modules and contexts.
I updated the documentation of the new config options, please also have a look at that.

Thanks a lot for your work @walterddr! I merged this. 🍵


Const guid

Fixes #136
Note that this will push the MSRV to Rust 1.46 which is currently in beta.

@kennykerr this is ready for review. It won't pass CI until I update const-sha1 with the changes necessary to get this to work, but I'd like to have your eyes on this before I push a new version. Once that's done, I'll push a new version of const-sha1 and we can merge this.

Can't wait to do some run time comparative performance testing with this change.

Note that this is a breaking change for consumers of winrt-rs who have their own impls of winrt::ComInterface. This should be reflected in the next release version.

Yes, our next version will be 0.8 for multiple reasons 👍 .

Here's the performance impact of const guids. Consider the following sample:
fn main() -> Result<()> {
    let uri = Uri::create_uri("http://kennykerr.ca")?;
    let query = uri.query_parsed()?;

    let start = std::time::Instant::now();

    for _ in 0..1_000_000 {
        let s = query.size()?;
        debug_assert!(s == 0);
    }

    println!("{:5}ms", start.elapsed().as_millis());
    Ok(())
}

The size method is on a required but non-default interface of the WwwFormUrlDecoder class returned by the query_parsed method. That means that every time size is called, QueryInterface must first be called to retrieve the appropriate vtable. This is just one of those details that a language projection hides from the language as a convenience, but such hidden costs need to be as minimal as possible.
Before this commit:
C:\git\rust\scratch>cargo run --release
    Finished release [optimized] target(s) in 0.09s
     Running `target\release\scratch.exe`
  829ms

After this commit:
C:\git\rust\scratch>cargo run --release
    Finished release [optimized] target(s) in 0.09s
     Running `target\release\scratch.exe`
   21ms

That's about 40 times faster and on par with C++/WinRT.

@kennykerr looks like your snippet is missing this:
import!(
   dependencies
      os
   types
      windows::foundation::Uri
);
use windows::foundation::Uri;
use winrt::*;

otherwise its not valid Rust.


docs(samples): added recaptcha code samples and tests

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

[x] Make sure to open an issue as a bug/issue before writing your code!  That way we can discuss the change, evaluate designs, and agree on the general idea
[ ] Ensure the tests and linter pass
[ ] Code coverage does not decrease (if any source code was changed)
[ ] Appropriate docs were updated (if necessary)

Fixes #111  🦕

I've updated permissions and tests are passing now! I've added the owlbot:run label to enable the python3.10 samples.


There are no rules able to parse the input

Hi there,
I am CS student, and I found an issue with the library you are developing. I try it with other .cnv files and is working fine, but this one from 2016 is having an issue. It trows the following exception
CNVError: 'There are no rules able to parse the input. File:
you think it would be fine to send you the file so you can check the issue? or is it something I am doing wrong?
I recently started using your library, so I followed the tutorial in the docs:
import seabird
from seabird.cnv import fCNV
#profile = fCNV("/home/alex/Desktop/Briceno/DATA/K25/01070600.cnv")
profile = fCNV("/home/alex/Desktop/Briceno/DATA/Keys Sampling Data/K83/cnv/K83_01_000.cnv")
attr = profile.attributes
keys = profile.keys()
scan = profile["scan"]

Hi, yes please send me a sample of your failing files.

thanks, here you go:
K83_01_000.zip

Hi Castelão, any update about this issue? I'm experiencing the same problem.

Hi again,
I'm not sure why my code in utils.py was indented in lines 98 to 101. By usign your updated code in your repository everything works.
My old code:
        if re.search(r, raw_text, re.VERBOSE):             #logging.debug("Using rules from: %s" % rule_file)             #self.rule = rule             parsed = content_re.search(raw_text).groupdict()             return rule, parsed         else:             # If haven't returned a rule by this point, raise an exception.             #logging.error("No rules able to parse it")             raise CNVError(tag='noparsingrule')
And the correct one:
`        if re.search(r, raw_text, re.VERBOSE):
#logging.debug("Using rules from: %s" % rule_file)
#self.rule = rule
parsed = content_re.search(raw_text).groupdict()
return rule, parsed
# If haven't returned a rule by this point, raise an exception.
#logging.error("No rules able to parse it")
raise CNVError(tag='noparsingrule')`

I'm sorry for the slow response. So is the latest commit here working for you?

Hello,
I'm having the same issue - do you have any advice?

Thanks @atorr018 !
@PabloOtero , these lines should be out of the loop so that if no rule can satisfy, the function returns an error.
@PabloOtero and @aer205 , if the latest version doesn't work for you, I would need to see an example file to understand why the current rules can't parse your data. In that case, please open a new issue with the cnv text that fails. Thanks,


Error in running RPi script

When attempting to use the GUI it gives the error "Caught exception: write timeout", indicating that the RPi script is not running. This seems to be the case, but when I attempt to run it manually, I get an error with the code.
"ModuleNotFoundError: No module named 'serial'"
I tried to use "pip install pyserial" on the RPi to try and fix this but I get the error "-bash: pip: command not found"
Did I just miss the step adding serial to the RPi?

Please try all the steps in section 1.5 of the manual again and let me know how it goes

Also please provide screenshots as it is useful for me to see how you're trying to run the script manually, etc..

Hi,
Thanks for the help, I was able to fix it!
On Thu, Mar 3, 2022 at 4:21 PM Ramy ElMallah @.***>
wrote:

Also please provide screenshots as it is useful for me to see how you're
trying to run the script manually, etc..
—
Reply to this email directly, view it on GitHub
https://github.com/RamyE/SFU_ML/issues/20#issuecomment-1058693820, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AOEMV5PH5LXH7VTIWSRDBNDU6FJQ3ANCNFSM5P33LX5Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you authored the thread.Message ID:
@.***>


fix: Override copr plugin config to use fedora chroot by default (resubmission)

Resubmission of #663 as per #664

This looks like a good change to me.
It doesn't affect existing users in any way and for images downstream of Main that customize the OS release it prevents DNF from breaking.


store meursing_headings.meursing_heading_number as int

rather than a string

Thinking about it some more, did we store it as a string to preserve leading 0's?

@matthewford in my original MySQL database I have only integers

Would require a db rebuild, given the timelines - i'm holding off on this one, we can do it later.


chore(.travis.yml): Stop deploying images from Travis

This stops Travis from carrying out deployments of Docker images, as we have agreed to transfer this responsibility to Jenkins.
cc @vdice @sgoings

@jackfrancis do you know what the "default" job is here?  Or why it appears stuck, with no "details" link like the other jobs?


Fix-for-timezone-change-issue

Resolved issue with .FirstOrDefault which was returning DateTime.MinValue if no schedule was found.
Resolved issue where a schedule was not correctly calculated if the daylight saving offset occurred on the next iteration of the schedule.

Resolution confirmed in testing.  Merging.


Anyone can solve Bootstrap Select combining with Cascading.js filter?

Im stuck while using bootstrap select and cascading.js to make it more dynamic in searching option.
Here's my fiddle that stuck, jsfiddle
And this my second try, but it won't solve also, jsfiddle
Any chance can it done here?
Thank you.

I'm confused - what is your issue?

Would like to use bootstrap-select with cascading.js
Please see jsfiddle..

I saw the jsFiddle. What is the expected outcome? What is happening instead?

Would like to create filter selection, and integrated with cascading.js.

When user click option 1, then can go to the option 2. something like nested selected.
After both option selected, the table below will filtering with the selected option.
It's a filtering function, by using bootstrap-select + cascading.js + jQuery filter.
Any chance to make this happen?

Hello, I did a test and found the solution, after $ locations.html (html); You must add $ ('# location'). Selectpicker ('refresh'); This method updates the selectpicker and renders it, Regards

@jnacaratto thanks! it's works.


data as long format

the current layout of the csv file is in wide format. For classification purposes with respect to the city, that format is not too welcoming. ;-) Here is a small pandas snippet on how this transformation could look like:
import pandas as pd

df = pd.read_csv("https://zenodo.org/record/4980359/files/weather_prediction_dataset.csv?download=1")

# quite ugly, but if you know better let me know
df.columns = [ "{}-{}".format("_".join(item.split("_")[1:]), item.split("_")[0]) for item in df.columns ]

df["id"] = df.index

# let's focus on "precipitation","temp_min", "temp_mean", "temp_max"
lf = pd.wide_to_long(df,
                     ["precipitation","temp_min", "temp_mean", "temp_max"]
                     ,
                     i="id", j="city", sep="-", suffix=r'\w+')
lf = lf.reset_index()
lf.city.value_counts()

Btw, for this conversion #21 turns out to be a show stopper.

This creates a huge array with many duplicates.
Would the following do the job as well:
cols = df.columns.str.extract(r'([A-Z_]+[A-Z])_?([a-z_]+)?', expand=True)
cols = cols.fillna("")
df.columns = pd.MultiIndex.from_arrays((cols[0], cols[1]))


Add array pad function

What do these changes do?
Add array pad function, see here for details.
Pad function has several padding modes, and currently four of them can work properly, i.e. 'constant', 'edge', 'linear_ramp', 'empty'. Since I apply np.pad to each edge input chunks independently, those modes which requiring values from other chunks, cannot produce correct results. This needs to be fixed later.

Does this PR support all modes for pad function? If not, please raise NotImplementedError for unsupported modes and add tests for all supported modes. In addition, please remove the commented code in test file.


Android Requiring unknown module "assert"

Version

react-native-router-flux 3.2.8
react-native 0.23.1

Steps to reproduce

import {Actions} from "react-native-router-flux";

Module AppRegistry is not a registered callable module.
Requiring unknown module "assert". If you are sure the module is there, try restarting the packager or running "npm install".
Module AppRegistry is not a registered callable module.

Have you read message you are posting? "Requiring unknown module "assert". If you are sure the module is there, try restarting the packager or running "npm install"."

sorry.


Children of a nested collection appear in the parent as a first-order child.

I honestly can't remember how to reproduce this. x_x


Document how to take a vanilla maven project and setup for fabric8/docker and deploy it

eg using the forge commands and so on.
We could use an Apache Camel example and then use the forge tool to setup, and then deploy.
And record a video as well ;)

Started a walk-through series, where we should have different use-cases
http://fabric8.io/guide/quickstarts/walkthrough.html
1 = try the out of box quickstart such as the fatjar as its the simplest
2 = try to create a new project from archetype in cli / eclipse and run it (such as camel log)
3 = create a new empty project and use fabric8-setup
4 = take an existing maven project and use fabric8-setup
the jvm connect plugin dont work yet until OS3 1.0.7 so some screenshot/video of that in action gonna have to wait


Update the code base to use IFileSystem instead of fs and fs-extra.

(for #6911)
This is a precursor to the actual fix.  It ensures that we really do use the new FS API everywhere.
I've left out changes related to datascience.  I'll open a separate issue for that.

[x] Pull request represents a single change (i.e. not fixing disparate/unrelated things in a single PR)
[x] Title summarizes what is changing
~[ ] Has a news entry file (remember to thank yourself!)~
[x] Appropriate comments and documentation strings in the code
~[ ] Has sufficient logging.~
~[ ] Has telemetry for enhancements.~
[x] Unit tests & system/integration tests are added/updated
~[ ] Test plan is updated as appropriate~
~[ ] package-lock.json has been regenerated by running npm install (if dependencies have changed)~
~[ ] The wiki is updated with any design decisions/details.~

Codecov Report

Merging #7915 into master will decrease coverage by 0.84%.
The diff coverage is 39.07%.

@@            Coverage Diff             @@
##           master    #7915      +/-   ##
==========================================
- Coverage   59.22%   58.38%   -0.85%
==========================================
  Files         498      497       -1
  Lines       22427    22048     -379
  Branches     3607     3602       -5
==========================================
- Hits        13283    12873     -410
- Misses       8309     8342      +33
+ Partials      835      833       -2

Impacted Files
Coverage Δ

src/client/sourceMapSupport.ts
75.6% <ø> (ø)
:arrow_up:

.../datascience/interactive-common/interactiveBase.ts
6.21% <0%> (ø)
:arrow_up:

...rpreter/locators/services/baseVirtualEnvService.ts
34.09% <0%> (ø)
:arrow_up:

src/client/common/platform/types.ts
100% <100%> (ø)
:arrow_up:

...preter/locators/services/windowsRegistryService.ts
91.02% <100%> (ø)
:arrow_up:

src/client/datascience/jupyter/jupyterExecution.ts
52.52% <100%> (ø)
:arrow_up:

src/client/common/variables/environment.ts
91.66% <100%> (+0.11%)
:arrow_up:

src/client/common/net/fileDownloader.ts
100% <100%> (ø)
:arrow_up:

src/client/interpreter/locators/helpers.ts
62.5% <15.38%> (-10.68%)
:arrow_down:

...interpreter/locators/services/KnownPathsService.ts
55.55% <20%> (-3.54%)
:arrow_down:

... and 48 more

Continue to review full report at Codecov.

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

trigger re-test

Why did the GH VS Code extension publish my comments as single reviews even though they were marked as "pending" (╯°□°)╯︵ ┻━┻


Hyper fails with innerError Error: Cannot find module '../build/Debug/pty.node'

Describe the bug
I updated to latest nixos-unstable and I'm not able to run hyper anymore, I get this:
innerError Error: Cannot find module '../build/Debug/pty.node'
Require stack:
- /nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/node_modules/node-pty/lib/unixTerminal.js
- /nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/node_modules/node-pty/lib/index.js
- /nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/session.js
- /nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/ui/window.js
- /nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/index.js
-
    at Module._resolveFilename (node:internal/modules/cjs/loader:940:15)
    at n._resolveFilename (node:electron/js2c/browser_init:245:1105)
    at Module._load (node:internal/modules/cjs/loader:785:27)
    at c._load (node:electron/js2c/asar_bundle:5:13343)
    at Function._load (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/plugins.js:103:37)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/node_modules/node-pty/lib/unixTerminal.js:30:15)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1175:10) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/node_modules/node-pty/lib/unixTerminal.js',
    '/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/node_modules/node-pty/lib/index.js',
    '/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/session.js',
    '/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/ui/window.js',
    '/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/index.js',
    undefined
  ]
}
A JavaScript error occurred in the main process
Uncaught Exception:
Error: `node-pty` failed to load. Typically this means that it was built incorrectly. Please check the `readme.md` to more info.
    at createNodePtyError (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/session.js:39:34)
    at Object.<anonymous> (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/session.js:46:11)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1175:10)
    at Module.load (node:internal/modules/cjs/loader:988:32)
    at Module._load (node:internal/modules/cjs/loader:829:12)
    at c._load (node:electron/js2c/asar_bundle:5:13343)
    at Function._load (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/plugins.js:103:37)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)

Steps To Reproduce
Steps to reproduce the behavior:

install hyper with the latest nixos-unstable

Notify maintainers

cc @puffnfresh @FabianGD
Metadata
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.2.12, NixOS, 23.05 (Stoat), 23.05.git.6c43a3495a1`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.3`
 - nixpkgs: `/persist/home/pearman/dev/jankaifer/nixos/modules/nixpkgs`

There is already one quite old hyper issue, but that seems to be unrelated: https://github.com/NixOS/nixpkgs/issues/105961

Oh so the issue actually is with Release/pty.node, and that debug is just a fallback:
https://github.com/microsoft/node-pty/blob/7217b42f1189cc9969f0633348850f9d61eb1bd1/src/unixTerminal.ts#L15-L27

Oh, It rethrows the original error, so the relevant part of the log is just this:
Uncaught Exception:
Error: `node-pty` failed to load. Typically this means that it was built incorrectly. Please check the `readme.md` to more info.
    at createNodePtyError (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/session.js:39:34)
    at Object.<anonymous> (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/session.js:46:11)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1175:10)
    at Module.load (node:internal/modules/cjs/loader:988:32)
    at Module._load (node:internal/modules/cjs/loader:829:12)
    at c._load (node:electron/js2c/asar_bundle:5:13343)
    at Function._load (/nix/store/w7xdsx4cpzvvlp2c85k89l1lgvn42mnl-hyper-3.4.1/opt/Hyper/resources/app.asar/plugins.js:103:37)
    at Module.require (node:internal/modules/cjs/loader:1012:19)
    at require (node:internal/modules/cjs/helpers:102:18)

That was already mentioned in the original issue, will close this as a duplicate.


Custom file output format

As per the docs:
A package named helloworld.abstract.v1 will have an output filename of helloworld.abstract.v1.rs.

While this is  a nice readable format  having a dot in the file name makes it incompatible with rust for use directly with mod. The result is we are required to use include macro. But IDE's such as vscode with rust extension are unable to reference the definition for traits etc. This is sort of a big deal for developer UX.
If we allowed the separator to be configurable IE _ helloworld_abstract_v1.rs. would be valid. That would allow the below which also allows visibility into the trait source via IDE.
mod helloworld_abstract_v1;
mod helloworld_abstract_v1_tonic;

#[cfg(feature = "helloworld")]
pub mod helloworld {
    pub use super::helloworld_abstract_vs::*
    pub use super::helloworld_abstract_vs_tonic::*
}

I imagine this would mess with your prost-crate assumptions so perhaps we could gate this an not compatible? Or better yet we could adopt this output? :)

Much of this goes back to how prost-build is set up to generate these files. It makes certain assumptions about the module structure between various elements, and protoc-gen-prost-crate uses those conventions in setting up the includes.
In my case, I regularly use Visual Studio Code with the rust-analyzer plugin, and I don't seem to have the same issue that you appear to be indicating you have. I tried this in two fashions, from within and without the same crate where the definitions are being included, and I had no problems getting VSCode to bring up the trait methods:

Of note, the rust-analyzer plugin filters out functions for traits that aren't in scope. Thus, when I just press . without having prost::Message imported, I only see the following:

But, if I have already imported prost::Message into the file with use prost::Message, then I see this:

If you're more worried about the fact that "Go to definition" leads you to the include!() macro invocation, that is a limitation of rust-analyzer (rust-lang/rust-analyzer#3767 and rust-lang/rust-analyzer#9403). I'm not keen to add and support a new feature just to work around a tooling issue that should be fixed on that side.

While this is a nice readable format having a dot in the file name makes it incompatible with rust for use directly with mod.

Note that if you want this, you can specify the path manually with an attribute:
#[path = "helloworld.abstract.v1.rs"]
mod helloworld_abstract_v1;

Everything for the most part works fine with vscode but if I do [go to definition] I always land on the root include. Which I guess we can't completely blame on the implementation. I appreciate the feedback.

While this is a nice readable format having a dot in the file name makes it incompatible with rust for use directly with mod.

Note that if you want this, you can specify the path manually with an attribute:
#[path = "helloworld.abstract.v1.rs"]
mod helloworld_abstract_v1;

Nice this actually helps me a lot, had not tried that. Will close this as we have a viable workaround. Thanks!


[1.19.2] Crash ChunkManager

https://mclo.gs/CzgcOUv
I believe its from milk lib from what is reported in the stack trace. This occurred on a dedicated server

It's happened quite a bit. Still happens. I can provide logs when I'm back
home
On Tue, Jun 13, 2023, 5:36 PM TropheusJ @.***> wrote:

Closed #8 https://github.com/TropheusJ/milk-lib/issues/8 as completed.
—
Reply to this email directly, view it on GitHub
https://github.com/TropheusJ/milk-lib/issues/8#event-9522160976, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AIL5CKDDCQSJTTGXCBKBAGLXLEBPHANCNFSM6AAAAAAUOPGBP4
.
You are receiving this because you authored the thread.Message ID:
@.***>


[master]add network support for ubuntu20

@dongyanyang pleasee help to review.

change network file path and name;
change network apply command in 'get_znetconfig_contents' method;
generate a yaml file for network configuration.
import a python yaml modue to save a yaml file. --->change to use pyYAML

https://github.ibm.com/zvc/planning/issues/2634
py27: commands succeeded
congratulations :)
[root@UT zvmsdk]#
pep8: commands succeeded
congratulations :)

Another thing is that  you still need to add the dependency of yaml in the zcc requirement and tell the build team to add this dependency when building the zvmsdk package.
At last, pls attach the pep8 and ut result.

Another thing is that you still need to add the dependency of yaml in the zcc requirement and tell the build team to add this dependency when building the zvmsdk package.
At last, pls attach the pep8 and ut result after change the code.

pep8: commands succeeded
congratulations :)
[root@UT python-zvm-sdk]#
Ran 12 tests in 0.002s
OK
__________________________________________________________________ summary __________________________________________________________________
py27: commands succeeded
congratulations :)

Notified haojue and Haijie via slack about the PyYaml dependency. @iaasci-ibm


Convert Explorer from create-react-app + react-router to Next.js

This is a draft PR to convert the website from a single-page create-react-app site to one that uses Next.js instead.
Also, huge shoutout to contributor @ehesp for getting a Next.js proof of concept up and running with PR #53! That code was used as a reference and we can probably start to pull in a lot of that work once the core parts of the site have been converted over to Next.
A few of the major benefits Next.js will give us:

Better SEO and meta tags for each page, instead of one top-level meta tags set for the whole website. So when someone shares a link to a specific page in Explorer, the preview card can be specific to that page, and the share card that shows up on Facebook, Twitter, Discord can be really pretty and dynamically populated with the right information ✨  (this might need to be added in a future PR—this one is just focused on moving from CRA -> Next as quickly as possible)
Much faster performance, making use of some of Next's biggest benefits automatically, like code-splitting and <Link> tags. E.g.: clicking through the blocks is now significantly faster:

^ and this is just recorded in the local dev environment, it should be theoretically even faster once it's built and deployed!

Lots of other cool things we can add in, some of which are demonstrated in #53

A rough to-do list of things that still need to be completed to get the existing site completely converted over to Next.js:

[x] Get the rest of the dynamic route pages working (right now just the /pages/blocks/[blockid].js has been converted to work with Next, but /pages/accounts/[accountid].js and /pages/hotspots/[hotspotid].js still need to be converted)
[x] Make sure search is still working (Next's built-in router behaves a bit differently than react-router)
[x] Clean up file structure and organization
[x] Edit README and CONTRIBUTING.md

🙌🏼 nice job @danielcolinjames @Ehesp


Seg-fault in tabbed.py

Run tabbed.py
create a new tab => google.com gets loaded
close all the keyboards
4.(you can't type into google textinput) & close tab => segfault

I cannot reproduce the issue


Make it possible to describe command parameters using defaults

Summary
Use function parameter defaults to describe
What is the feature request for?
nextcord.ext.commands
The Problem
Generally, when attempting to describe an argument by either giving it a type, a proper default value, or even some slash command settings in the future you must either do that using explicit code or using the decorator itself.
The Ideal Solution
I suggest an approach similar to fastapi where fields are described using descriptor-like defaults. This is similar to a long-ignored pull request in the original repository except with more functionality and better extendability. It could also allow for accurate typing while keeping all the options.
The Current Solution
This is currently done using annotations. That's generally a great approach but unusable for more complex approaches.
My main problem is with converters. When you use a converter as an annotation it's not actually consistent with the actual type you'll get.
Additional Context
An example of what we had to do before:
def command(
    ctx: commands.Context,
    a: MyCustomConverter,
    b: commands.Greedy[converter_function],
    c: bool = False,
    *,
    rest: commands.clean_content() = ''
):
    ...

And a better solution:
def command(
    ctx: commands.Context,
    a: float = Param(..., converter=MyCustomConverter.convert),
    b: List[int] = Param(..., converter=converter_function, greedy=True),
    c: bool = Param(False),
    rest: str = Param('', rest=True, clean=True)
):
    ...

the ... are literal ellipsis

The functionality should still be consistent with the original pull request
# from
def command(ctx: commands.Context, member: discord.Member):
    member = member or ctx.author
    ...

# originally suggested
def command(ctx: commands.Context, member: discord.Member = Author()):
    ...

# ideal solution
author = Field(lambda ctx: ctx.member)
def command(ctx: commands.Context, member: discord.Member = author):
    ...

author is now reusable and can even be included in the library itself.

Possible signatures if anyone cares
class Field:
    def __init__(
        self,
        # bot factories and actual types are allowed
        # Field can be a generic type but that will just cause more bad than good
        default: Union[Callable[[commands.Context], Any], commands.Converter, Any] = ...,
        optional: Optional[bool] = None,  # also based on if there is a default argument
        clean: bool = False,  # like commands.clean_content
        greedy: bool = False,  # like commands.Greedy[]
        rest: bool = False,  # like the very hacky keyword only parameter
    ) -> None:
        ...

# this function is the one that will be exported to allow for typing consistency
def Field(
    # in production a 1:1 copy of the  signature params for linters
    default: Union[Callable[[commands.Context], Any], commands.Converter, Any] = ...,
    optional: Optional[bool] = None,
    clean: bool = False,
    greedy: bool = False,
    rest: bool = False,
) -> Any:
    return nextcord.fields.Field(default, optional, clean, greedy, rest)

Benefits

backward compatible. When a param is not defined the annotation is still used as the converter. When a converter parameter is not provided the annotation is used as the converter.
Allows for other types and easier protocols. If the library provides a collection of converters it's easy to work with them.
Not just Field has to be used. Other types such as Flag for flags like --flag can be used.
This doesn't have to be limited to just normal commands, it can be implemented along with slash commands.
And more maybe...

Hmmm not really a fan of this although this could be used for inline converters like this?
@bot.command
async def test(ctx, arg: Converter(lambda text: text.upper())):
    ...

The whole point of this proposal is to have correct annotations while still keeping all the settings. By doing this you still use incorrect annotations.

This has been fully implemented in disnake so I think it's alright to close this. I wish the nextcord devs the best of luck!


Table Field Properties

Hi,
when will it be possible to alter properties of existing fields in tables, e.g. CalcFormula of a FlowField, Editable, DecimalPlaces?

@qutreson Any idea how we can work around it, especially the editable property?
Cause we need to add some code to validate of a certain field, but the users can't fill in any values due to editable = no ...
Other fields aren't allowed to be changed manually, but now you can due to editable = yes ...

 Since the field is not editable can you instead use a new field from a table extension?

Hi,
here is my concrete example:

 I want to change the FlowField-Formula because I added a new FlowFilter in the actual table and a new filter criteria in the table below.

 I want to add an additional DocumentType in an existing table

There is no help in creating a new field from an extension
Von: Stanislaw Stempin<EMAIL_ADDRESS>Gesendet: Donnerstag, 5. April 2018 17:35
An: Microsoft/AL<EMAIL_ADDRESS>Cc: Thomas Franzen<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Betreff: Re: [Microsoft/AL] Table Field Properties (#1437)
Can you give a concrete example? Since the field is not editable can you instead use a new field from a table extension?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/Microsoft/AL/issues/1437#issuecomment-378978335, or mute the threadhttps://github.com/notifications/unsubscribe-auth/Ah4de4vVltE1VyNzRkF0cnDBwhk7RdbJks5tljmigaJpZM4RhQ6C.


dart.exe got flagged as virus by apex one/trend micro

Similar to this issue (https://github.com/flutter/flutter/issues/58302) I ran into the problem, that dart.exe got flagged by anti malware software.
Anti malware software: Apex One security agent by trend micro.

Logs

Logs

flutter doctor -v
[√] Flutter (Channel master, 3.1.0-0.0.pre.1191, on Microsoft Windows [Version 10.0.19043.1320], locale en-US)
• Flutter version 3.1.0-0.0.pre.1191 at C:\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision fc1710b41c (2 hours ago), 2022-06-09 09:08:09 -0400
• Engine revision 47e374f632
• Dart version 2.18.0 (build 2.18.0-170.0.dev)
• DevTools version 2.14.0
[√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1)
• Android SDK at C:\Users\cm\AppData\Local\Android\sdk
• Platform android-32, build-tools 32.1.0-rc1
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
• All Android licenses accepted.
[√] Android Studio (version 2021.1)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
[√] VS Code (version 1.67.2)
• VS Code at C:\Users\cm\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.42.0
[√] Connected device (1 available)
• sdk gphone x86 (mobile) • emulator-5554 • android-x86 • Android 11 (API 30) (emulator)
[√] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!

Hi @Chris1234567899, thanks for filing the issue.
I see there's an open issue addressing the case you described #46696.
Please drop a comment or add a reaction to the original comment on that issue.
Closing as a duplication, so please follow up on it for further updates.


DeciderChange(roundend): One player tried to handover device when the game told them the winner would become the next decider

I'm not sure how to exactly address this, but one player thought that this screen was suggesting them to hand over their device to the winning player because they would become the next decider.

Perhaps a simple copy change and revision will help make it clear that the game will give them the role of decider on their device. I will look into this copy revision and push.
Other than that, we will keep an eye out for this happening again.

leaving in icebox so we can remember that this might come up again. If it keeps emerging, lets address. otherwise, too edge case to take time to address.


[DML] Scala/Java API for UPDATE

This tracks the ongoing work and discussions for building the Scala/Java APIs for SQL UPDATE Delta Lake tables.

@tdas Thanks. Would you pls provide a design doc?

Yes, I will make one soon.

Here is the proposed programming APIs for MERGE, DELETE, UPDATE. Please share your thoughts in comments.
https://docs.google.com/document/d/1gU6G7XJSg3wuQDLIJVM1_FLKSj2KoLW0kcOu5HicYQM/edit?usp=sharing

this has been completed with https://github.com/delta-io/delta/commit/5bf990d1a4ce4d429212118fa2d6008d982820bf


Add fanotify API wrappers

What does this PR do
It adds linux fanotify API support: wrappers for libc fanotify_init and fanotify_mark functions.
Note that it requires libc version 0.2.150 since it introduces necessary fanotify constants (https://github.com/rust-lang/libc/pull/3408).
Checklist:

[X] I have read CONTRIBUTING.md
[X] I have written necessary tests and rustdoc comments
[x] A change log has been added if this PR modifies nix's API

Hi, thanks for your interest in contributing to Nix, I have left some comments on this PR:)

Hi, thank you for the detailled review, I'll treat your comments asap !

Let's merge this PR, mind removing the WIP/Draft status?

That tier3 (armv7-unknown-linux-uclibceabihf) CI failure is probably a nightly Rust bug, see also this comment


AssertionError: season, seasonAdvanced stats MLB API Issue

Output:
====================================== short test summary info ======================================

FAILED tests/external_tests/stats/test_catching.py::TestCatchingStats::test_catching_stat_attributes_player - AssertionError: 1 != 2
FAILED tests/external_tests/stats/test_catching.py::TestCatchingStats::test_catching_stat_attributes_team - AssertionError: 1 != 2
FAILED tests/external_tests/stats/test_fielding.py::TestPitchingStats::test_fielding_stat_attributes_player - AssertionError: 1 != 2
FAILED tests/external_tests/stats/test_fielding.py::TestPitchingStats::test_fielding_stat_attributes_team - AssertionError: 2 != 4
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_bydate_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_bydayofweek_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_bymonth_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_excepected_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_hotcoldzones_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_pitchArsenal_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_pitchlog_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_stat_attributes_player - AssertionError: 2 != 4
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_stat_attributes_team - AssertionError: 2 != 4
FAILED tests/external_tests/stats/test_hitting.py::TestHittingStats::test_hitting_vsteam_stats_team - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_bydate_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_bydayofweek_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_bymonth_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_excepected_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_hotcoldzones_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_pitchArsenal_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_pitchlog_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_playlog_stats_player - AssertionError: {} == {}
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_stat_attributes_player - AssertionError: 2 != 4
FAILED tests/external_tests/stats/test_pitching.py::TestPitchingStats::test_pitching_stat_attributes_team - AssertionError: 2 != 4

Issues:
Team endpoint that should return hitting stats for season:
https://statsapi.mlb.com/api/v1/teams/133/stats?stats=season,career&group=hitting
MLB api now returns Object not found when asked for season stats, which is a new output we have not seen before from the MLB api. When an addition stats type is included such as stats=season,career instead of just stats=season, we are returned a normal return but with only stats for career, it does not even include an empty season stats.
{
   "messageNumber":10,
   "message":"Object not found",
   "timestamp":"2023-02-28T20:31:24.076747546Z",
   "traceId":null
}

People endpoint that should return stats for season and seasonAdvanced:
https://statsapi.mlb.com/api/v1/people/660271/stats?stats=season,seasonAdvanced&group=pitching
MLB api returns an empty stats object, which unlike above, an empty stats object that I assume is meant to contain the pitching season and seasonAdvanced stats objects. When an additional group is added like above, stats=season,seasonAdvanced,career, only the career pitching stats are returned, missing both the season and seasonAdvanced.
{
   "copyright":"Copyright 2023 MLB Advanced Media, L.P.  Use of any content on this page acknowledges agreement to the terms posted here http://gdx.mlb.com/components/copyright.txt",
   "stats":[]
}

Summery:
The failed tests are all tied with the season and seasonAdvanced stat types. Because of these issues when we ask for 4 stat types and two of which are the issued season types, only 2 stat types are returned. Meaning that with a test expecting 4 but only receiving two, it fails, creating an assertionError.
Example below where we ask for season and career catching stats. Since only one is returned when we check, 1 != 2 and thus the AssertionError:
def test_catching_stat_attributes_team(self):
        """mlb get stats should return pitching stats"""
        self.stats = ['season', 'career']
        self.group = ['catching']
        # let's get some stats
        stats = self.mlb.get_team_stats(self.al_team, stats=self.stats, groups=self.group)

        # check for empty dict
        self.assertNotEqual(stats, {})

        # the end point should give us 2 hitting
        self.assertTrue('catching' in stats)
        self.assertFalse('hitting' in stats)
>       self.assertEqual(len(stats['catching']), 2)
E       AssertionError: 1 != 2

Thoughts
I think this may have something to do with it being the offseason. Could this be how the MLB api handles its returns for between seasons or is this the result of a change or update with the MLB api and how they handle these endpoints? Due the the lack of api information that is publicly available at this time we have no real idea.

@Mattsface What do you think, should we temporarily change the tests to "wait out" till the season starts to see if this is how the MLB api handles offseason stats requests for season or should we handle it with some code checking the date against the mlb season start and end dates when asking for season stats?
Not sure what we can really do besides just wait it out and see given the lack of public facing documentation on the api

@KCNilssen I will explore updating the pytests to add a specific season parameter. I believe you might be on to something with the new season starting.

@Mattsface I think the only thing to do at the moment is wait it out and see. I tried to find information on It and came up empty.
https://statsapi.mlb.com/api/v1/people/663728/stats?stats=season&season=2018&group=catching
Adding the season param for 2018 to see if that would change anything still results in an empty return. I think this issue must be with season stats?
Issues could be:

They are updating season stats and have chosen this for the mean time?
Season stats are broken on api side
They have completely changed the endpoint and the way we get stats

@Mattsface I think the only thing to do at the moment is wait it out and see. I tried to find information on It and came up empty.
https://statsapi.mlb.com/api/v1/people/663728/stats?stats=season&season=2018&group=catching
Adding the season param for 2018 to see if that would change anything still results in an empty return. I think this issue must be with season stats? Issues could be:

They are updating season stats and have chosen this for the mean time?
Season stats are broken on api side
They have completely changed the endpoint and the way we get stats

Let's give it a few days to see how things work out. I wish we had some information from the MLB on this.

PR Made. I added the season param to all stat tests.

Resolved with PR that includes a specified season for season stats to use to avoid the offseason mlb stats returning empty values.


Panel Support and Machine Bounding Box

Added support for Panel mode on the dashboard.  This is implemented through adding media styles for widths <= 720px.  A fullscreen button ("[ ]") is added in Panel mode which will display the full tablet UI.
Additionally, added a call to the existing function to get the machine bounding box.  Previously, it was using default values which in my case caused the gcode to draw outside the box.

Closing.  This has been merged manually.


Missing files in recent pip installation

I'm having trouble running newspaper in python 2.7 in recent installs. My old installs of the same version still works. But in new virtualmachines and in new virtualenvs I get a newspaper installation which don't have any directories in it:
$ virtualenv /tmp/test1
New python executable in /tmp/test1/bin/python
Installing setuptools, pip, wheel...done.
$ . /tmp/test1/bin/activate
(test1) $ pip --version
pip 9.0.1 from /tmp/test1/local/lib/python2.7/site-packages (python 2.7)
(test1) $ python --version
Python 2.7.6
(test1) $ pip install --no-cache-dir "newspaper>=<IP_ADDRESS>"
Collecting newspaper>=<IP_ADDRESS>
/tmp/test1/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/tmp/test1/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
  Downloading newspaper-<IP_ADDRESS>.tar.gz (248kB)
    100% |████████████████████████████████| 256kB 8.6MB/s
Collecting beautifulsoup4==4.3.2 (from newspaper>=<IP_ADDRESS>)
....
Installing collected packages: beautifulsoup4, Pillow, PyYAML, cssselect, lxml, nltk, requests, six, jieba, feedparser, tldextract, feedfinder2, python-dateutil, newspaper
  Running setup.py install for beautifulsoup4 ... done
  Running setup.py install for Pillow ... done
  Running setup.py install for PyYAML ... done
  Running setup.py install for cssselect ... done
  Running setup.py install for lxml ... -^[OF^[OF^[Odone
  Running setup.py install for nltk ... done
  Found existing installation: six 1.10.0
    Uninstalling six-1.10.0:
      Successfully uninstalled six-1.10.0
  Running setup.py install for jieba ... done
  Running setup.py install for feedparser ... done
  Running setup.py install for tldextract ... done
  Running setup.py install for feedfinder2 ... done
  Running setup.py install for newspaper ... done
Successfully installed Pillow-2.5.1 PyYAML-3.11 beautifulsoup4-4.3.2 cssselect-0.9.1 feedfinder2-0.0.1 feedparser-5.1.3 jieba-0.35 lxml-3.3.5 newspaper-<IP_ADDRESS> nltk-2.0.5 python-dateutil-2.4.0 requests-2.3.0 six-1.7.3 tldextract-1.5.1
(test1) $ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import newspaper
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/tmp/test1/local/lib/python2.7/site-packages/newspaper/__init__.py", line 10, in <module>
    from .article import Article, ArticleException
  File "/tmp/test1/local/lib/python2.7/site-packages/newspaper/article.py", line 14, in <module>
    from . import nlp
  File "/tmp/test1/local/lib/python2.7/site-packages/newspaper/nlp.py", line 17, in <module>
    with open(settings.NLP_STOPWORDS_EN, 'r') as f:
IOError: [Errno 2] No such file or directory: '/tmp/test1/local/lib/python2.7/site-packages/newspaper/resources/misc/stopwords-nlp-en.txt'
>>>
(test1) $ ls -1tr /tmp/test1/local/lib/python2.7/site-packages/newspaper/
cleaners.py
nlp.py
configuration.py
__init__.py
utils.py
urls.py
text.py
source.py
settings.py
parsers.py
outputformatters.py
network.py
mthreading.py
images.py
extractors.py
article.py
api.py
version.py
outputformatters.pyc
text.pyc
nlp.pyc
__init__.pyc
cleaners.pyc
api.pyc
version.pyc
extractors.pyc
urls.pyc
source.pyc
images.pyc
configuration.pyc
parsers.pyc
network.pyc
mthreading.pyc
article.pyc
utils.pyc
settings.pyc
(test1) $

When it works on my old installs it's because it got a cached wheel which it uses as install. When I disable the cache or install from a fresh VM + Virtualenv it'll install via an egg

Reproduced on a python:2 gitlab ci docker image last night.
../venvs/api/lib/python2.7/site-packages/newspaper/nlp.py:17: in <module>
    with open(settings.NLP_STOPWORDS_EN, 'r') as f:
E   IOError: [Errno 2] No such file or directory: '/builds/publia/publia/python/venvs/api/lib/python2.7/site-packages/newspaper/resources/misc/stopwords-nlp-en.txt'

I then, noon (CEST) today, pressed retry and the issue was gone

I'm getting the same issue both yesterday and today.

This is so weird, I can't reproduce :\
@svrist do you have any hints why your latest retry worked .. despite all older retries failing? What in your coding environment could have changed?

OK - just reproduced this on python2. Works on python3. This is so weird. Let me try to fix it and push a new deployment in pip. Something must have broke the deployment my last push 2 days ago
@hailuns @svrist

Good news! Problem has been found, I just pushed a new newspaper (python2) package to pip, please update now: pip install newspaper==<IP_ADDRESS>
The root cause was that 2 days ago i accidentally pushed a python2 newspaper binary without being in virutalenv (causing my setuptools import to be much much much older) which mis-interpreted MANIFEST.in causing all of the data files to be lost!

It works for me!
Successfully installed newspaper-<IP_ADDRESS>
(python2-newspaper-test) ------------------------------------------------------------
~VIRTUAL_ENV » python                                                                                l@mbp
Python 2.7.10 (default, Feb  7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import newspaper


How to disable MoreView?

Hey,
I'd like to see all the events?
I have generally 10 per day.
So I want to see all of them on smaller screens
I'd like to see all of them in a Day View, Month view etc.
So generally I see all events and I just scroll the whole calendar down.
I could make it by making the calendar height to for example 1400px.
And the Month View will look good but then when I switch to 2 Weeks it's too high.

We don't have any option to disable moreview to expand week height.


Use $DEVKITPPC to locate as and objcopy on Linux

The devkit-env package adds this environment variable to /etc/profile.d/, so we can use it to determine the PATH. Oddly, devkitPPC does not depend on devkit-env. That means it is technically possible to have only one of the two installed, so the redundant check is necessary.

This looks like it would need to be rebased but this would be really nice

This looks like it would need to be rebased but this would be really nice

Rebased onto latest master. Let me know if any changes need to be made.

Rebased onto latest master. Let me know if any changes need to be made.

merged, thanks

merged, thanks

This worked for me! Thanks you two :)

This worked for me! Thanks you two :)


Unable to Generate Report, 'NoneType' object is not subscriptable

Hello got the following error, tracking the previous bug report, which it was indicated 'collect' may have not been run first (I ran collect).
Error:

python cloudmapper.py report --account

Getting resource counts
Traceback (most recent call last):
File "cloudmapper.py", line 72, in
main()
File "cloudmapper.py", line 66, in main
commands[command].run(arguments)
File "/path/path/networkmap/cloudmapper/commands/report.py", line 461, in run
report(accounts, config, args)
File "/path/path/networkmap/cloudmapper/commands/report.py", line 97, in report
account, args.stats_all_resources
File "/path/path/networkmap/cloudmapper/shared/common.py", line 280, in get_account_stats
)["LocationConstraint"]
TypeError: 'NoneType' object is not subscriptable

Commands run:
$ (cloudmapper) bash-3.2$ python cloudmapper.py collect --account
(several minutes of console outputs related to my account)
$ (cloudmapper) bash-3.2$ python cloudmapper.py report --account
(that error)
Thanks!

The collect step (re-ran it) output the following:
Failures:   s3.get_bucket_acl({'Bucket': 'additional-doc'}): An error occurred (AccessDenied) when calling the GetBucketAcl operation: Access Denied   s3.get_bucket_policy({'Bucket': 'additional-doc'}): An error occurred (AccessDenied) when calling the GetBucketPolicy operation: Access Denied   s3.get_bucket_logging({'Bucket': 'additional-doc'}): An error occurred (AccessDenied) when calling the GetBucketLogging operation: Access Denied   s3.get_bucket_location({'Bucket': 'additional-doc'}): An error occurred (AccessDenied) when calling the GetBucketLocation operation: Access Denied
Confirmed outside of the venv shell that I could call
$ aws s3api get-bucket-location --bucket
-> which output:
{
"LocationConstraint": null
}
Which per some other docs, seems to indicate null is reported out if the bucket is in us-east-1, which that bucket is.
Is AWS S3 reporting null, and cloudmapper putting in a null value for LocationConstraint perhaps?

Same

@jack-robs I ran into this error for the iam_report command. I solved it by modifying the iam_report.py file at line 84 from this:
        job_id = get_parameter_file(
            region,
            "iam",
            "generate-service-last-accessed-details",
            principal_auth["Arn"],
        )["JobId"]

to this:
       try:
          job_id = get_parameter_file(
              region,
              "iam",
              "generate-service-last-accessed-details",
              principal_auth["Arn"],
           )["JobId"]
       except TypeError:
           continue

I think there are different issues at play here.
For the problem from @jack-robs, it looks like access is completely denied on a certain bucket. I'm assuming your IAM policy (or SCP or something) must have something like:
"Effect": "Deny",
"Action": "*",
"Resource": "arn:aws:s3:::some_bucket"

As a result, no data can be collected from it.  CloudMapper makes the assumption that it has all of the privileges granted by SecurityAudit and ViewOnlyAccess.  If that is not true, then you will run into problems.  As people are focusing more and more on limiting their IAM policies and doing things like applying SCPs that are outside of the control of the account owners, these problems have been popping up.  I worry I'm going to be playing whack-a-mole if I try to account for unique policies people are creating, and believe that these issues are going to be outside of the scope of this project to account for, unless a generic solution arises, or I run into a problem like this myself in an environment and am forced to better handle it.
I think also that when collect is run and errors are encountered, I need to record those errors, and somehow force all of the other commands to report those errors encountered, especially in cases of any exceptions like this, as the problem is very likely related to the collection errors.
As for the problem from @kmcquade, I think similarly the file ./account-data/YOUR_ACCOUNT/us-east-1/iam-generate-service-last-accessed-details.json does not exist or is not formatted correctly, due to some sort of errors on the collect.

@0xdabbad00 So I was thinking what you were thinking - my IAM policy for my profile is forbidding me from calling s3:Action so cloudmapper, via my profile, couldn't do that as well. However, w/o cloudmapper invovled, I could call that s3:action, in that case get-bucket-location. So w/ cloudmapper: can't call get-bucket-location, without cloudmapper, could call get-bucket-location. Is that what you were referring to w/ IAM?
I'll double check what I have in IAM though, perhaps I can call s3:get-bucket-location via my profile, but if cloudmapper is doing its thing via a service role or similar, and I don't have that role giving access to get-bucket-location, that would follow. Thanks! Quick response is awesome.
@kmcquade excellent, let me try that as well.

@kmcquade that worked, as far as generating the report, different part of the codebase but same conce.t
@0xdabbad00 not sure if you want a PR though, it generates a 'Critical' output on the localhost/account-data/report:
{     "exception": "local variable 'grant' referenced before assignment",     "traceback": "Traceback (most recent call last):\n  File \"/path/cloudmapper/shared/audit.py\", line 121, in audit_s3_buckets\n    for grant in file_json[\"Grants\"]:\nTypeError: 'NoneType' object is not subscriptable\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"/path/cloudmapper/shared/audit.py\", line 978, in audit\n    audit_s3_buckets(findings, region)\n  File \"/path/cloudmapper/shared/audit.py\", line 138, in audit_s3_buckets\n    \"grant\": grant,\nUnboundLocalError: local variable 'grant' referenced before assignment\n" }
With the higher level output of Other issues cannot be checked for until this is fixed.
I can try to trace through for that error as well, but not sure how much downstream stuff this leads too.

@jack-robs Note that based on your error, CloudMapper is not able to make any of the following calls:

s3.get_bucket_acl
s3.get_bucket_policy
s3.get_bucket_logging
s3.get_bucket_location

It is showing you a Critical error because things are broken (ie. you lack privileges) in a way that CloudMapper does not understand and thus some of it's checks are not going to work, and problems it would normally detect will be hidden.
It sounds like you may be using the --profile option of CloudMapper and that is resulting in your running with different privileges than you would normally.  You should use CloudMapper within an aws-vault environment and things will likely go more smoothly for you.
I'm closing this issue as it sounds like the problems you both have run into are outside of the scope of CloudMapper (ie. you have different privileges than what CloudMapper expects to be able to run properly).

Yeah makes sense, I'll try aws-vault.
I'm not tracking on the privileges aspect, given that I can do:

s3.get_bucket_acl
s3.get_bucket_policy
s3.get_bucket_logging
s3.get_bucket_location

all with my master profile via aws cli (not using cloudmapper), but if cloudmapper isn't reaching back and hitting my .aws/config and .aws/creds on the way to doing this audit, that makes sense as to why it doesn't work for me.


Cannot install LibLog 5.0.6 on Framework 4.5.2 project

When I try to install LibLog on my Framework 4.5.2 project I encounter the following error:
PM> dotnet nuget locals all --clear
info : Clearing NuGet HTTP cache: C:\Users\jallen\AppData\Local\NuGet\v3-cache
info : Clearing NuGet global packages folder: C:\Users\jallen\.nuget\packages\
info : Clearing NuGet Temp cache: C:\Users\jallen\AppData\Local\Temp\NuGetScratch
info : Clearing NuGet plugins cache: C:\Users\jallen\AppData\Local\NuGet\plugins-cache
info : Local resources cleared.
PM> Install-Package LibLog -Verbose
  GET https://api.nuget.org/v3/registration3-gz-semver2/liblog/index.json
  OK https://api.nuget.org/v3/registration3-gz-semver2/liblog/index.json 314ms

Attempting to gather dependency information for package 'LibLog.5.0.6' with respect to project 'SkySlope.DataFeed.Api', targeting '.NETFramework,Version=v4.5.2'
Package LibLog from source Microsoft Visual Studio Offline Packages gathered from cache.
Package LibLog from source nuget.org gathered from cache.
Total number of results gathered : 38
Gathering dependency information took 16.63 ms
Summary of time taken to gather dependencies per source :
Attempting to resolve dependencies for package 'LibLog.5.0.6' with DependencyBehavior 'Lowest'
Resolving dependency information took 0 ms
Resolving actions to install package 'LibLog.5.0.6'
Resolved actions to install package 'LibLog.5.0.6'
Retrieving package 'LibLog 5.0.6' from 'nuget.org'.
  GET https://api.nuget.org/v3-flatcontainer/liblog/5.0.6/liblog.5.0.6.nupkg
  OK https://api.nuget.org/v3-flatcontainer/liblog/5.0.6/liblog.5.0.6.nupkg 17ms
Acquiring lock for the installation of LibLog 5.0.6
Acquired lock for the installation of LibLog 5.0.6
Installing LibLog 5.0.6.
PackageSignatureVerificationLog: PackageIdentity: LibLog.5.0.6 Source: https://api.nuget.org/v3/index.json PackageSignatureValidity: True
Completed installation of LibLog 5.0.6
Install failed. Rolling back...
Package 'LibLog.5.0.6' does not exist in project 'SkySlope.DataFeed.Api'
Package 'LibLog.5.0.6' does not exist in folder 'C:\skyslope\skyslope-datafeed\packages'
Executing nuget actions took 150.36 ms
Install-Package : Could not install package 'LibLog 5.0.6'. You are trying to install this package into a project that targets '.NETFramework,Version=v4.5.2', but the package does not contain any
assembly references or content files that are compatible with that framework. For more information, contact the package author.
At line:1 char:1
+ Install-Package LibLog -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], Exception
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand

Time Elapsed: 00:00:00.5333416

Any ideas?

Bisecting the issue, it looks like 4.5.2 support was removed in 5.0.5?

What is your project type? V5 onwards only supports the new SDK csproj formats

It's a .NET Framework Web API project which isn't supported for conversion to the new csproj format, best I understand?

You definitely can convert WebAPI projects targeting .net framework to the SDK project format. Did so on other projects over a year ago. I recommend you do so because it is much saner to work with.
Winforms and wpf projects can be done but are a bit more complicated (will be fully supported after .net core 3 related tooling lands).
If you can't change the project type for whatever reason, stick with the 4.x version until you can.
Closing as there is a solution and a workaround. Happy to continue discussion if you have further questions.


502 bad gateway when trying to open our open pim to login

[ ] I have followed the below steps and after that i was no more able to access open pim and now I have a 502 bad gateway
In the settings I accessed Channels and created one named data channel that is set as manual
I accessed then the Channels tab and saw my channel
I tried to trigger it and in the network there was a 502 bad gateway error
I tried to refresh it as there was a refresh option and in the network it gave a 502 bad gateway as well
I refreshed then the whole open pim and here I was no more able to access it , I have a blank page with in the network the below query returning a 502 bad gateway

{
    "query": "query { getRoles {id, internalId, identifier, name, configAccess, relAccess, itemAccess, channelAccess, otherAccess, options, updatedAt, updatedBy, createdAt, createdBy } }"
}

And in our rancher, the below error is returned
*61052 connect() failed (111: Connection refused) while connecting to upstream, client: <IP_ADDRESS>, server: _, request: "POST /graphql HTTP/1.1", upstream: "http://<IP_ADDRESS>:8080/graphql

[ ] There is another point: when I created the channel in the settings there is a configuration tab and when accessing it nothing was showing in it and I did not find a way to have something in this page

I also faced a similar problem and restarting the container fixed it (seems the graphQL server crashes)
I'm using a kubernetes cluster and could add some health check to automatically restart the container but it ain't clear which endpoint I can "ping" to make sure the graphQL is up and running.
I tried to simply hit /graphql but it's responding with a 400:
2024/10/10 07:19:12.664 [error]: BadRequestError: Must provide query string. 2024-10-10T07:19:12.665255241Z at graphqlMiddleware (/server/node_modules/express-graphql/index.js:76:44) 2024-10-10T07:19:12.665267685Z at processTicksAndRejections (node:internal/process/task_queues:96:5)
--
2024/10/10 07:19:12.664 [error]: request - {}
<IP_ADDRESS> - - [10/Oct/2024:07:19:12 +0000] "GET /graphql HTTP/1.1" 400 53 "-" "kube-probe/1.24"

it would be nice to expose a health check endpoint and add it in the documentation

Hi @jfayad
We have a healthcheck it is available at the URL /healthcheck of the server

Indeed I updated my previous message. I'm monitoring if that's enough to restart a crashed runtime.
Thank you


forum

I'll try to find an existing forum platform we can use. "Plug and play" components are always the best. Same thing goes for #11 .

I found a forum platform that works out of the box and created one for athanasea. It also support chat room. Check it out: https://athanasea.ryver.com

in #14 @Taxidea-Jen mentioned " it is important that this site not be linked to any external sites". So we'll need to use a forum package and host it on our own domain.

how about NodeBB ?  an open source forum software, based on nodejs . we can customize it, deploy on our cloud, then embed it into athanasea.

https://github.com/NodeBB/NodeBB

https://github.com/NodeBB/NodeBB
athanasea.nodebb.com

I think NodeBB has very high quality(compared to phpBB), and we should consider using it. I think we should let @Taxidea-Jen decide whether we self-host or use their hosting service. I still prefer using their hosting service, because this save us time(and equivalently, money) in the long run - unlimited storage, scalability, free updates/upgrades... On the other hand, I can see the advantage of self hosting too: the forum can have our domain name, style, and integrated login.

I'm completely fine with whatever forum template you would like to use, but I would prefer it to be on our domain name, if possible.  If you think it's better to use the athanasea.nodebb.com, then that's fine, just so long as there is seemless transition between the two sites (must be fully customizeable so it can look just like the rest of the site).

Alright, I also agree to deploy the forum in our own host for style and integration sake. @ylhou , can you take a look at telescope too as an alternative to nodeBB? We can pick one from these 2 and start working on it.

now we are using telescope login module

a bit progress about forum .

That looks nice! Can you push the code?

I just want to ask if this is going to look like a website or a mobile device app, because those screen shots all look like an app for a mobile device, and I'm intending this to be a website.

Hi @Taxidea-Jen , our web app should work well and look great on most of devices and operating systems, as long as you use a modern web browser(e.g. chrome, firefox, etc). The app should look differently with optimized visual effect depending on the device you use. I deployed it to our testing server at http://athanasea.meteor.com/ Give it a try with whatever device/OS/browser combo you have!

now the question is, if we build a website only,  like http://www.eldemore.com/index.php,  items become too small to click when displayed on mobile.  our  implementation make the site usable for different devices.
we will  beautify the UI further

Our earlier attempt on highly integrated forum and athanasea core wasn't very successful. I think it's better to reduce the coupling of the forum and the core. For now we can leave this issue to backlog and concentrate on the core feature development. Eventually we should deploy 2 of them separately for easier maintenance, with shared css and user account for consistency.