Future Ideas for additional features

This issue will mostly serve as a thread that other can contribute to with some ideas for future functionality with the CircuitPython Code Editor. Here's an initial list I came up with based on taking a look at https://python.microbit.org/v/beta:

Some code snippets which could be cool. For snippets, perhaps either we could make use of Read The Docs or include some code snippets in the repository of the library and have some kind of interface where it grabs the code snippets we have there

We could also possibly use Read The Docs to display some integrated documentation
The tricky part would be having it know which docs went with specific library functions

Maybe we could do something like Pyleap and load code from a learn guide in the future, though the details would need to be worked out.
Adding some tabs and just displaying the active document in the serial terminal and editor

This would also be a bit tricky with juggling and transferring between URLs, but not impossible

Adding additional language support
Font sizing is a great idea
Perhaps some color themes for people who don’t like the dark look of the editor
Adding something like CircUp to the Editor as well like has been discussed in various places
Deployment to Devices has been discussed
Perhaps adding some kind of Self Signed Certificate generator may be an option along with deployment so we can do HTTPs for Web Workflow.

Feel free to contribute your own ideas.

Another idea I had was to support additional language color coding based on file extension that was opened. This would be fairly easy to add.

In USB workflow.
Opening a folder instead of a file is going to make many interesting features possible.
For example, instead of creating a new file, download it and drag it into the CIRCUITPY drive.
Having a directory handle will allow you to directly create a new file on the CIRCUITPY drive edit it.
Many other functions like reading the CPY version number from boot_out.txt are also possible in that way.

In USB workflow. Opening a folder instead of a file is going to make many interesting features possible. For example, instead of creating a new file, download it and drag it into the CIRCUITPY drive, having a directory handle will allow you to directly create a new file on the CIRCUITPY drive edit it. Many other functions like reading the CPY version number from boot_out.txt are also possible in that way.

Huh, ok. If you know how to to this, or could at least provide further information, that would be great. I tried to implement this using webkitdirectory (as I described in more detail in #15) and it just returned all of the files. Perhaps I didn't explore this option as thoroughly as I should have.

Is this what you're referring to? https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle

Is this what you're referring to? https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryHandle

Ok, yeah, this looks very promising and is more in line with how I wanted USB workflow to work anyways. I will explore this option very soon. Thanks for the suggestion and pointing me in the right direction.

No problem.
Just beware that some of the features are only available in https environment.
And even in https I didn't get renaming file working. If you know how please also let me know.

Thanks. The intention is to have the USB workflow only run from https://code.circuitpython.org, so #28 would probably need to be completed first.

Thanks. The intention is to have the USB workflow only run from https://code.circuitpython.org, so #28 would probably need to be completed first.

Sorry, just want to know a little more. What do you mean by "run from https://code.circuitpython.org/"?
Are the workflows currently running somewhere else?

Sorry, just want to know a little more. What do you mean by "run from https://code.circuitpython.org/"? Are the workflows currently running somewhere else?

Ah, to get around some browser security issues, Web Workflow loads from the device itself using http. The device loads https://github.com/circuitpython/web-editor/blob/main/assets/js/device.js which pulls loads the website. More information is available at https://learn.adafruit.com/getting-started-with-web-workflow-using-the-code-editor/usage.

I think the circup-like feature (as mentioned in the first post above) is what would be probably most useful. With Web Workflow, because the file system needs to have USB mass storage disabled, updating libraries becomes really inconvenient.

Something that could be built on top of the circ-up feature would be a code scanner that automatically detects the libraries you need and asks if you would like to update/install them.

Something that could be built on top of the circ-up feature would be a code scanner that automatically detects the libraries you need and asks if you would like to update/install them.

curious to know what is the best way to pull the latest libraries from front end?

curious to know what is the best way to pull the latest libraries from front end?

Here's one way I've done it before: https://github.com/adafruit/Adafruit_Dynamic_Bundler

i like the idea to program CP in a visual way
just some thoughts on this

get support for CP in OpenRoberta lab (git)
add only the blocky editor to this web-editor
my favorite: use a node based visual flow based editor similar to http://noflojs.org/

i personally like the flow based version more than the blocky approach as its more of a real visual appealing design..
in general i think it would need a automagic system to parse the libraries and create components for them.
(maybe as a build job on the library builds...)
as otherwise you have no libs to use.. (its a to big burden for the lib maintainers to generate something special for the editor i think...)
what do you think about this?
would be a PR including some simple beginner friendly visual editor be an option?
i think it would make most sens to include this in the web-editor...
this way the visual editor is just a different representation of the normal code.
(and with this written down i think it will be difficult to follow the flow based approach - as it will be ?very difficult? to generate a flow out of some hand written code?!)

i like the idea to program CP in a visual way
just some thoughts on this

get support for CP in OpenRoberta lab (git)
add only the blocky editor to this web-editor
my favorite: use a node based visual flow based editor similar to http://noflojs.org/

i personally like the flow based version more than the blocky approach as its more of a real visual appealing design..
in general i think it would need a automagic system to parse the libraries and create components for them. (maybe as a build job on the library builds...) as otherwise you have no libs to use.. (its a to big burden for the lib maintainers to generate something special for the editor i think...)
what do you think about this?
would be a PR including some simple beginner friendly visual editor be an option? i think it would make most sens to include this in the web-editor... this way the visual editor is just a different representation of the normal code. (and with this written down i think it will be difficult to follow the flow based approach - as it will be ?very difficult? to generate a flow out of some hand written code?!)

Hi @s-light !
Have you checked https://make.playpiper.com/ before?
It provides a block based CPY editor and packages for components.
There you can ignore the python part, or open the tab to see the generated python code from the blocks.
I am not sure if you can edit some part of the python code directly.

no i did not tried this..
as fare as i can tell it uses the blocky editor / MS make.
where did you find the packages ?
do you know if the editor implementation from them is opensourced?
just also found
https://think.cs.vt.edu/blockpy/blockpy/load
so to integrate blockly  should be possible..

i extracted this in its own featurerequest


Deploy your Docker image to Kubernetes

As a DevOps engineer
I need to deploy my Docker image to Kubernetes
So that I can manage and scale the deployment efficiently
Details and Assumptions
Kubernetes is set up and ready for deployment.
The Docker image is compatible with Kubernetes deployments.
Acceptance Criteria :
Given a Docker image of my microservice
When I deploy the image to Kubernetes
Then the deployment should be successful and the service accessible


A value for the Info.plist key 'CFBundleIconName' is missing

So I attempted to transfer our capacitor project from capacitor-resources to cordova-res, because the docs specifically mention that the Ionic team is supporting capacitor for this. Everything worked well, until we got to distribution to the App store, and got back the following rejection:
"A value for the Info.plist key 'CFBundleIconName' is missing in the bundle {bundleName}."
I tried manually adding the following to Info.plist, but still got the same rejection:
<key>CFBundleIconName</key>
<string>AppIcon</string>

Is there something additional we need to add? I should also note that as we are using capacitor, we do not have a config.xml like typical Cordova projects, but our impression was that we did not need one with the --skip-config flag on cordova-res.

@stefanhk31 thanks for the report. Given we haven't seen much of this in the Capacitor world, it leads me to believe something in your project configuration got out of sync per this SO post: https://stackoverflow.com/questions/46216718/missing-cfbundleiconname-in-xcode9-ios11-app-release
I'll leave this open in case others run into this issue and it is something we need to add, but by default I think our app templates correctly set your app icons source such that this review issue won't happen by default.

I have also run into this problem when trying to submit our capacitor iOS app. @stefanhk31 did you manage to find a solution?

I'm sorry for posting another comment after this has been closed, but I have struggled too with this issue for hours... (as mentioned here https://github.com/ionic-team/capacitor-assets/issues/436#issuecomment-1319656519)!
Have you ever found a solution to this?

Just a heads up for people facing this.
You need to add 'CFBundleIconName' and also build the assets using @capacitor/assets, then sync your ios project and build your project at XCode.


[HIPIFY][fix][#824] Fix the bug with -inplace option

Do temp file copying instead of renaming
Replace all file routine functions with LLVM's
Do not output hipified file in case of errors

Ping


GOV.UK Frontend v5.2.0

Added

GOV.UK Frontend v5.2.0 support

In addition to my test updates I've also been looking into this and have got my own PR on my fork https://github.com/tim-s-ccs/govuk-frontend-jinja/pull/6


Possible replacement?

Hey guys, I made some heavy modification to the code so it will be a lot faster, I'm personally gonna be using it for watching long, lecture video in hopes of making them a bit less boring, check the README for more info
https://github.com/gusals3587/jumpcutterV2

@gusals3587 , you have made quite an improvement.
I'm working with Cary to make this project better and my team would like to talk to you about your improvements.
The project is hush hush but we are open to sharing what we are doing with anyone from the community. If you have time I'd like to talk to you on Cary's JumpCutter discord. We are looking for people with this kind of skill to help us with this project asap now that corona has us all stuck at home. :0


Uncaught Error: TOOLTIP: Option "container" provided type "undefined" but expected type "(string|element|boolean)".

I am using jquery 3.3.1 with bootstrap 4.0.0

jquery-3.3.1.min.js:2 Uncaught Error: TOOLTIP: Option "container" provided type "undefined" but expected type "(string|element|boolean)".
at Object.typeCheckConfig (bootstrap.js:185)
at Tooltip._getConfig (bootstrap.js:2974)
at new Tooltip (bootstrap.js:2553)
at HTMLButtonElement. (bootstrap.js:3034)
at Function.each (jquery-3.3.1.min.js:2)
at w.fn.init.each (jquery-3.3.1.min.js:2)
at w.fn.init._jQueryInterface [as tooltip] (bootstrap.js:3024)
at Renderer.callback (summernote-bs4.js:224)
at Renderer.render (summernote-bs4.js:48)
at summernote-ext-rtl.js:138

facing the same issue

i fix the issue by adding container: 'body',
referring here - https://jsfiddle.net/8fm5vq50/17/

Would you like to open PR to fix it?
On Fri, 29 Jun 2018, 11:11 pupattan<EMAIL_ADDRESS>wrote:

i fix the issue by adding container: 'body',
referring here - https://jsfiddle.net/8fm5vq50/17/
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/virtser/summernote-rtl-plugin/issues/3#issuecomment-401282369,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAcmbsMRAXj8oSyak5g9nig8RotciyfRks5uBeFDgaJpZM4SPOZ1
.

@pupattan  Hi there. I can notice no difference in your fiddle than the ones in the documentation. Yet, I tried it with the RTL plugin. But; I still get the same error!!!. Do you have any idea why the error is reproducing??.
Dependencies:

jQuery v3.3.1
Bootstrap v4.1.3
Summernote v0.8.9

I found out that the error is produced because of two similar lines in the summernote-ext-rtl.js file.
var button = ui.button({
    contents: '',
    tooltip: 'Change text direction to the right',``` <------ This line

When I comment out this line the error is no more shown in the console. But the functionality to RTL is missing though.

Does this make the problem more clear??


Changed the path to the Go repository

Transferred the repository to an organisation.

Thanks for the continuously done contributions!


Warp10 is not available at 8080 port

Hello everyone! I'm trying to test Warp10. Now I've set it up in docker container. Also I've generated all needed tokens. But when I try to make a request (an http one), I get a connection error.
Here is my docker-compose:
version: '3.7'

services:
  warp10:
    image: warp10io/warp10:latest
    restart: always
    volumes:
      - 'warp10_data:/data'
    ports:
      - '8080:8080'
      - '8081:8081'
    environment:
      - WARP10_HEAP=3g
      - WARP10_HEAP_MAX=3g
volumes:
  warp10_data:

Here is my request in pycharm:
POST http://localhost:8080/api/v0/update
Content-Type: text/plain
X-Warp10-Token: 7JFFkgL6wcJT39pOrljslq_.zPasxlye_aVdWA0ufQge4LvJH29yEH7M9PzhmtERxC.I8MQhrEerTJyRVHvIzh3IgR8f1kW63mfoZDiIIL7

1// test{} 42

Here is response in pycharm:
POST http://localhost:8080/api/v0/update

org.apache.http.NoHttpResponseException: localhost:8080 failed to respond

Here is my request in python (for thouse who like python syntax):
r = requests.post(
    'http://host.docker.internal:8080/api/v0/update',
    headers={'Content-Type': 'text/plain', 'X-Warp10-Token': '7JFFkgL6wcJT39pOrljslq_.zPasxlye_aVdWA0ufQge4LvJH29yEH7M9PzhmtERxC.I8MQhrEerTJyRVHvIzh3IgR8f1kW63mfoZDiIIL7'},
    data='''
<PHONE_NUMBER>000000// foo{label0=val0,label1=val1} 123
    '''.encode('utf8')
)
r.text

And here is python's traceback (short version):
ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))

So, people, what am I doing wrong?

Hi,
Does this command work?
curl -H "X-Warp10-Token: ${YOUR_WRITE_TOKEN}" http://localhost:8080/api/v0/update --data-binary '// test{} 42'

Hi, Does this command work? curl -H "X-Warp10-Token: ${YOUR_WRITE_TOKEN}" http://localhost:8080/api/v0/update --data-binary '// test{} 42'

Hi, no, as you could read in my post, it does not.

Can you try the same command inside the container?
Can you provide Warp 10 logs as well?

Can you try the same command inside the container? Can you provide Warp 10 logs as well?

Yeah, the previous command was already executed from inside this container.
Logs of this container you can read here:
warp10_test-warp10-1  | Warp 10 already installed
warp10_test-warp10-1  | Sensision already installed
warp10_test-warp10-1  | 'IN MEMORY' mode is disabled
warp10_test-warp10-1  | Launching Warp 10
warp10_test-warp10-1  | SLF4J: Class path contains multiple SLF4J bindings.
warp10_test-warp10-1  | SLF4J: Found binding in [jar:file:/opt/warp10-2.11.1/bin/warp10-2.11.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
warp10_test-warp10-1  | SLF4J: Found binding in [jar:file:/data/warp10/lib/warp10-ext-hfstore-2.0.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
warp10_test-warp10-1  | SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
warp10_test-warp10-1  | SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
warp10_test-warp10-1  | 2023-01-10T14:44:04,021 main WARN  script.WarpFleetMacroRepository - No validator macro, default macro will reject all URLs.
warp10_test-warp10-1  | Init leveldb
warp10_test-warp10-1  | cat: can't open '/opt/warp10/logs/warp10.pid': No such file or directory
warp10_test-warp10-1  | Warp 10 is running, pid=
warp10_test-warp10-1  | Launching sensision
warp10_test-warp10-1  | Create /var/run/sensision..
warp10_test-warp10-1  | Sensision is running, pid=145
warp10_test-warp10-1  | All process are running
warp10_test-warp10-1  | Warp 10 already installed
warp10_test-warp10-1  | Sensision already installed
warp10_test-warp10-1  | 'IN MEMORY' mode is disabled
warp10_test-warp10-1  | Launching Warp 10
warp10_test-warp10-1  | SLF4J: Class path contains multiple SLF4J bindings.
warp10_test-warp10-1  | SLF4J: Found binding in [jar:file:/opt/warp10-2.11.1/bin/warp10-2.11.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
warp10_test-warp10-1  | SLF4J: Found binding in [jar:file:/data/warp10/lib/warp10-ext-hfstore-2.0.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
warp10_test-warp10-1  | SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
warp10_test-warp10-1  | SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
warp10_test-warp10-1  | 2023-01-13T10:35:58,120 main WARN  script.WarpFleetMacroRepository - No validator macro, default macro will reject all URLs.
warp10_test-warp10-1  | Init leveldb
warp10_test-warp10-1  | cat: can't open '/opt/warp10/logs/warp10.pid': No such file or directory
warp10_test-warp10-1  | Warp 10 is running, pid=
warp10_test-warp10-1  | Launching sensision
warp10_test-warp10-1  | Sensision is running, pid=140
warp10_test-warp10-1  | All process are running

It seems that Warp 10 was not successfully installed on the first run.
Try with an empty volume.

It seems that Warp 10 was not successfully installed on the first run. Try with an empty volume.

I deleted the volume and start the container from the scratch. But:
bash-4.4# curl -H "X-Warp10-Token: ${YOUR_WRITE_TOKEN}" http://localhost:8080/api/v0/update --data-binary '// test{} 42'
curl: (7) Failed to connect to localhost port 8080: Connection refused

curl -H "X-Warp10-Token: ${YOUR_WRITE_TOKEN}" http://localhost:8080/api/v0/update --data-binary '// test{} 42'

OK. So I've deleted the volume and started the container from scratch. But instead of success I've got only the same picture:
bash-4.4$ warp10-standalone.sh worf test<PHONE_NUMBER>0
{"read":{"token":"Aug7YkmLntzYY8MZEQNcgN0.uL_Rxui6TeFJS28X1tgcoPKLyCFuB6znOZtRH9Hgbipn47zMEP_qYAuRW46Srgolk5deCYV2VPNghSPrBmZSxVs7KFR9AF","tokenIdent":"e0f44c3443996714","ttl":31536000000,"application":"test","applications":["test"],"owners":["66faee0d-d368-4667-baf6-dfbeac272b69"],"producer":"66faee0d-d368-4667-baf6-dfbeac272b69","producers":[]},"write":{"token":"AQg3hYEV.ORkgpcSP0wFbvauGn.ooV_2eA5pGzQvO1CCRU6FiuM2uIsUDRXL1GUAJnPOfWgEInugK7b2A8V_Ws1p5eIuJoQ_RMBZh9pwEQ.","tokenIdent":"cf69bf2829a10939","ttl":31536000000,"application":"test","owner":"66faee0d-d368-4667-baf6-dfbeac272b69","producer":"66faee0d-d368-4667-baf6-dfbeac272b69"}}
bash-4.4$ curl -H "X-Warp10-Token: AQg3hYEV.ORkgpcSP0wFbvauGn.ooV_2eA5pGzQvO1CCRU6FiuM2uIsUDRXL1GUAJnPOfWgEInugK7b2A8V_Ws1p5eIuJoQ_RMBZh9pwEQ." http://localhost:8080/api/v0/update --data-binary '// test{} 42'
curl: (7) Failed to connect to localhost port 8080: Connection refused

Weird, I cannot reproduce this behavior with the docker-compose file you gave in the first comment an a docker compose up.
In your case, Warp 10 does not start correctly. What does the log says?
Do you pass any extra configuration to the container (.env or other)?


Feature/ids9941 301 return v3

Running other tests now for ldap. 38443 hardcoded. Need to find the solution for loading. Will load when on browser but not curl. Curl command doesn't pass this setting into the filter object.

Local LDAP test passed

Ok its working. Possible to move the port update install code out of the security code. But I think its fine since its all tightly coupled. But not required to be in same function.


Unhandled record kind 0x117C with block level 1

Hello! I was testing the examples and found that record kind 0x117C is not supported. This issue may be related to C++20 coroutines. I have attached the PDB file for the reference.
ConsoleDemoApplication.zip

Thanks for reporting this and the PDB!


[FIX] remove indexing along channel axis in AnalogSignalGap.load()

Reference issue
Fixes #12356.
What does this implement/fix?
Removing indexing along channel dimension with idx in AnalogSignalGap.load() on zero-arrays representing the gap data in self.signal (commit: 1aa66). These arrays are constructed on the fly using the idx variable and hence have the appropriate channel dimension to begin with. In case of a single channel, slicing a 1-dimensional array with slice(1:2) slice yields a 0-dimensional array which breaks the concatenation downstream in l. 359.

pip-pre will fail until https://github.com/pyvista/pyvista/pull/5460 lands so you can ignore it

Thanks, @larsoner!
Can write a test at this point -- we already have 2 Neuralynx channels that simulate gaps, so I can reproduce this bug on the testing dataset.
The code below fails on current main (but will pass on this branch):
(3 durations < 0.005s hidden.  Use -vv to show these durations.)
===================================== short test summary info ======================================
FAILED mne/io/neuralynx/tests/test_neuralynx.py::test_neuralynx_gaps - Failed: Failed to load data after picking one channel with gaps: all the input array dimensions...

# test that channel selection works
raw = read_raw_neuralynx(
    fname=testing_path,
    preload=False,
    exclude_fname_patterns=ignored_ncs_files,
)

raw.pick("LAHC2")
try:
    raw.load_data()
except Exception as e:
    pytest.fail(f"Failed to load data after picking one channel with gaps: {e}")

Can write a test at this point -- we already have 2 Neuralynx channels that simulate gaps, so I can reproduce this bug on the testing dataset.

Great, feel free to push a version of that here then!

Great, feel free to push a version of that here then!

Ok, added test in edaee01. @larsoner


Add build for osx-arm64

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[x] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@nick-harmening: blocked by https://github.com/conda-forge/bc-python-hcl2-feedstock/pull/3


Remind users to export the results

When users are accustomed to other translation services, they may make the mistake and think it is automatically submitted online when they edit the strings.
As that is not the case here, there should be a reminder that it needs to be exported and a Pull Request needs to be made.

Yep, that would be a good thing to have.

…maybe also in the sidebar… https://github.com/Lusito/web-ext-translator/issues/11#issuecomment-405094458

Should be solved both in the browser and the standalone version.


make launch error in 0.9.5

fatal: Not a git repository (or any of the parent directories): .git
Util/BuildTools/Linux.mk:101: recipe for target 'setup' failed
make: *** [setup] Error 128

Have You installed git and tried using git clone with the repos url and are you in the right folder?

@lebu  I met the same problem  when I run make launch according the tutorials,( I download the package on github and not use git command) my cmake version is 3.12.2, Do you have any advice? Thanks!


Why not contribute these checks back up to the compiler?

Many of these checks jump out at me as being either dumb, obvious issues that should be fixed (eg. duplicate imports), or clear "this is a bad idea or has no real purpose" (eg. duplicate assignment). Rather than having these checks live in a separate package, the world would benefit more from the checks being run by the compiler.
Don't get be wrong, for less obvious or more contentious checks I can totally see the value in having these in a separate package, and the package can definitely move more quickly than the core language, so having elm-analyse hold the checks is fantastic, but what would it take to contribute back up-stream?

I hope that one day, elm-analyse is obsolete. I would be happy if some of these checks are incorporated in the compiler, and I am willing and hoping to contribute to that process. However, at this moment in time, I do not want to actively push these things back to the core team, which is busy developing the language. I would like to have the community think about how they write Elm code, how we can do it better and evolve tooling around the language. The core team can then decide which things are important and adopt or re-implement this in a better way that supports the community. If elm-analyse (or parts of it) become a core-tool I would be a happy community member :).


Design and Implement Login Screen

📘 Description
Design and implement the login screen for the application, enabling users to access their accounts using their credentials.
🔍 Steps

Design and implement a login screen with fields for email, password, and optional 2FA.
Add functionality for the "Forgot Password" link (optional; for now, it should redirect to a placeholder page).
Ensure the login button matches the styling of the primary button component, is fully functional, and includes proper user input validation.
Validate responsiveness and accessibility to provide a seamless experience across all devices.

✅ Acceptance Criteria

Validation is in place for email and password fields.
The screen is fully responsive and accessible.
Components must be reusable and organized in the login folder.

🌎 References
📜 Additional Notes

Good day, I'm a frontend developer proficient in JavaScript, TypeScript, React.js, and Next.js. With experience in building visually appealing web applications, I will Design and Implement Login Screen using Shadcn UI ,Tailwind CSS and react hookform, within an estimated 26 hours.

Hello PayStell team,
I’m Derian Rodríguez, a member of the Dojo Coding community ⛩💻. I’m excited to contribute to your project during the Only Dust #11 hackathon 🚀.
As a full-stack developer, I have experience in:

Frontend: JavaScript/TypeScript, TailwindCSS, React, Next.js, and shadcn/ui.
Backend: Node.js (Express.js, Nest.js).
Web3: Cairo.

Plan to resolve the issue "Design and implement the login screen"

Design and functionality:

Create a form with fields for email and password.
Include an optional field for two-factor authentication (2FA).
Implement a "Forgot Password" link (which redirects to a placeholder page for now).
Ensure the login button has the primary button styling and is fully functional with proper user input validation.

Validations:

Validate email and password fields to ensure the email format is correct and the password is valid.

Responsiveness and accessibility:

Ensure the screen is fully responsive and accessible on all devices.

Component organization:

Components must be reusable and organized within the login folder.

Here are my profiles:

GitHub
OnlyDust

Thank you for considering my application.

Is it okay if I tackle this? with my solid experience with web3 frontend design and knowledge of how smart contracts work, this issue should be as sweet as a piece of cake lol

Hello! I am Renzo: www.renzobarcos.site
I have been exploring the repository and its issues these past days, and I felt that I could add value to applications that focused on component design. I am confident that I can bring value to this issue as well.
I am part of the Dojo community and am excited about the opportunity to make my first contributions to Paystell.
In addition to my experience as a frontend and full-stack developer, I have a strong understanding of UI/UX principles, which will allow me to design and implement a login screen that is visually appealing, fully responsive, and accessible. I will:

Design a visually appealing and responsive login screen with fields for email, password, and optional 2FA.
Add a functional "Forgot Password" link that redirects to a placeholder page.
Implement robust input validation to ensure correct user data handling.
Create reusable components organized within the login folder to maintain consistency.

I will ensure that all requirements described in the issue are met and that the final result aligns perfectly with the acceptance criteria, delivering high-quality, user-focused functionality.
Thank you for the opportunity 🚀!

Hello. I am a fullstack web developer and a recent alumni of Web3Bridge, the largest and most sought after blockchain developer community in Africa. I have extensive frontend experience building beautiful frontend dashboards and mobile screens for e-commerce and education websites. I am a new contributor to OnlyDust and would love to take on this task to increase my knowledge base and contribute to open source projects.
I have experience in:
Frontend: HTML/CSS, JavaScript/TypeScript, Tailwind, Shadcn/UI, React.js, and Next.js
Backend: Node.js (Express.js, Nest.js), Django
Web3: Solidity and Rust.
I will tackle this issue using these steps:

Design and implement the login screen layout, including fields for email, password, and an optional 2FA field.
Add functionality for the "Forgot Password" link, which will redirect to a placeholder page in the meantime
Ensure the login button matches the primary button styling and implement full functionality with input - validation for email and password fields.
Validate the email and password inputs to ensure proper formatting and validation.
Make the login screen fully responsive across devices and ensure it meets accessibility standards.
Organize all components to be reusable and structured within the login folder for maintainability and scalability.

I aim to complete this task within 24 hours after being assigned and setting up my development environment, with my first pull request submitted before 12 hours. I have an incredible work ethic and can deliver on this task.
Thank you for the opportunity and I look forward to working with you.

Could I take on this issue?

I am a Full Stack Developer with a strong background in blockchain and extensive experience in Next.js/React, TypeScript, and Rust. I’ve made over 49 contributions to over 17 projects in the OnlyDust ecosystem, solving complex issues and delivering efficient, scalable solutions.
I can handle this task.
ETA is 3days.

Can i work on this?

Mind if I try this one?

hey sir i would love to work on this issue
i'm a blockchain dev and i would love to handle this issue
assign me and i'll get to work

Could I take over this issue?

Hello ser, please can I be assigned this issue? I am an experienced ui/ux designer and here is proof of some designs I've done.
https://github.com/PayStell/paystell-website/issues/22,
https://github.com/mubarak23/chainevents-frontend/issues/6.
I have experience in in html, css, JavaScript, TypeScript and cairo.
I've gone through the description and I promise to follow the steps. I'll come up with a clean and user centric design
Kindly assign me please, I'm up for the task.

Hi! I'm Carlos, a Software Developer with over 2 years of experience. I've worked with C++, Java, and JavaScript, and I'm excited to make my first contribution to OnlyDust. It would be great to contribute to the project's sucess, I am also part of Dojo Coding.
I would design and implement a clean login screen with fields for email and password, including a "Forgot Password" link that redirects to a placeholder page for now. The login button would match the primary button style and be fully functional, ensuring proper validation for both email and password inputs. I would ensure the screen is fully responsive, adapting to different device sizes, and accessible, with clear labels and focus states for users with disabilities. Components would be organized within a dedicated login folder for better maintainability. Finally, I would test the functionality, responsiveness, and accessibility to ensure a seamless user experience.

I would really love to work on this task. I’ll design and implement the login screen with email, password, and optional 2FA fields. It will include proper validation, a functional "Forgot Password" link (redirecting to a placeholder), and a responsive, accessible design. Components will be reusable and well-organized in the login folder.
I can have this done within 24 to 36 hours.

So, I will create the login screen with fields to input email, password, and optional 2FA fields. The "Forgot Password" link will redirect to a placeholder page for now. The login button will style like the primary button but will have validation on all user inputs. The login screen will be responsive across all devices, and its components will be kept in a login folder for easy reusability.

Hi, I’m Santiago Villarreal Arley, a proactive and communicative developer with experience in both front-end and back-end Web3 development. I’m a proud member of Dojo Coding and have worked on various projects built on StarkNet and Stellar, where I actively contributed to creating scalable and efficient solutions. I also won a Web3 hackathon Buildathon for my work on BuildMyEvent, an open-source blockchain project focused on solving real-world challenges and integrating useful features.
To tackle this issue:
I’ll design and implement a login screen with fields for email, password, and optional 2FA.
Add a "Forgot Password" link redirecting to a placeholder page.
Ensure proper validation for inputs, responsiveness, and accessibility.
Organize reusable components in the login folder for modularity.
ETA: 12-48 hours. Feel free to reach out via Telegram

Hii! My name is Mario Araya, I’m a Software Developer with 2+ years of experience. I have worked with backend technologies such as Cairo, Java, and C#, as well as frontend development using React, NextJS, and JavaScript/TypeScript. I’ve made contributions to open-source projects, completed a Starknet Bootcamp, exercises on NodeGuardians, finished Starklings, and participated in multiple hackathons. I’m also a member of the Dojo Coding community here in Costa Rica.
I will Include fields for email, password, and an optional 2FA input, and implement a "Forgot Password" link redirecting to a placeholder page for now. Ensure the login button adheres to the styling of the primary button component and supports functionality with proper input validation for the email and password fields.

I'd love to work on this!

Can I jump on this task?

Hi, I am Obaloluwa, a frontend developer with over 2 years of experience, using React, NextJs, typescript and tailwindCSS regularly and I am well familiar with creating pages like the one in this task.
Can I work on this issue?
My plan to handle this issue:

I will study the design to know all the requirements and components I need to create, then familarize myself with the code base to get the structure and tools used.
Next is I will create all the required ui components for this screen, including the form, ensuring they are resuable, responsive, accessible and match the design perfectly.
Then, implement the screen for this task, ensure its functional and the login form validation is effective.
Finally, implement all the other required functionality like forgot password and features "normal" on a login page

ETA: 1 to 2 days.
I will be sure to communicate with the team on telegram if I face any blockers and would create a PR once I am done.

Can I take this from here?
Is it okay if I tackle this?
I am a front-end developer specializing in responsive web design.
device-compatible email templates, 3D web integration,
and technical writing on programming topics. I also contribute.
to open-source documentation and help build documentation sites.
I will create the login form from the Figma design, making it have validation hereby making it responsive and resuable as a component

Hi, I've over 4 years professional experience working on frontend applications (React, Vue, Next, Nuxt, TS). I've gone through the repository and Figma design. I believe this is an excellent first issue for me to contribute to. Can take on this task?

Hi, I’d like to work on this issue. I’ll design and implement a responsive login screen with email, password, and optional 2FA fields. The "Forgot Password" link will redirect to a placeholder page, and the login button will follow the primary button styling with proper validation. Components will be reusable and organized in the login folder, ensuring accessibility and responsiveness across devices.


Update to libgit2 v1.1.0

Apparently, this mostly affected some names. Tests do pass.
Closes #180

Gentle ping to please merge :) @mattrubin @mdiep


refactor!: overhaul kbot2 with nuxt (#67)

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


Update .travis.yml

Debugging coverage. Do not merge. Thanks 👍

cc https://github.com/codecov/example-swift/issues/14#issuecomment-249212709

Ok. So I think the issue was -J '^DynamicColor$' which could not detect the project because (maybe new in Xcode8) it's called iOSTests and not DynamicColor. This build illustrates that removing -J works: https://travis-ci.org/yannickl/DynamicColor/builds/162409583#L651

Oh great, thank you for your amazing help! I'm out for the moment, I'll fix this tonight or tomorrow.
Thanks again!

Great! You are very welcome.

Did this change in Xcode8 and/or Swift3?
Can this knowledge help other customers concerning https://github.com/codecov/example-swift/issues/14?
Did this resolve the 0% coverage issue?

It works now:

I had to update the iOS test scheme with Xcode 8.
xcpretty seems broken with code coverage Xcode 8.
Now I have 100% coverage.


Insiders: wrong separator used for nested folders

Type: Bug
Looks like latest Insiders joins folders with wrong separator , intead of //\.
Reproducible in Explorer "explorer.compactFolders": true and in search results with View as Tree. Note that it doesn't happen with path displayed in description in List view.

Not sure if related, but pressing LeftArrow while selection is on nested frolders - it would show would notification with an error:

VS Code version: Code - Insiders 1.84.0-insider (cbd09078e6221fa1553c5a59dd25e63ad767911a, 2023-10-23T05:34:05.496Z)
OS version: Windows_NT x64 10.0.19045
Modes:

System Info

Item
Value

CPUs
11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz (8 x 2996)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
31.50GB (15.35GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions: none

/duplicate and will be fixed in the next build.

Thanks for creating this issue! We figured it's covering the same as another one we already have. Thus, we closed this one as a duplicate. You can search for similar existing issues. See also our issue reporting guidelines.
Happy Coding!

Tried to find issues and commits but no luck.
What would be keywords?


Exceeded maximum execution time

Recipient list of approx. 50 or more returns an Exceeded maximum execution time error due to the limitation in Card Service actions of Google Workspace Add-ons which let's a function run for a maximum of 30 secs.
https://developers.google.com/workspace/add-ons/concepts/actions#callback_functions

To address this issue, I've added lines to determine the time elapsed from the start of the script for every loop in creating merged drafts. With a 5-sec offset to the 30-sec limit of add-on actions, when the time has passed for more than 25 secs at the end of an arbitrary loop, the process is carried over to a time-based triggered function.


Species Files migration - missing taxon name authors for ref in ref

For example /taxon_names/1126409 in the sandbox is missing the taxon name roles that should have been created.
This might be an issue with nested attributes not saving.

Ref in ref has been revamped into two categories:

Chapter author: Galvagni in Baccetti 1987, a true ref in ref; all work therein attributed to Galvagni.
Taxon name author: Chamorro-Rengifo in Braun, Chamorro-Rengifo & Morris. Chamorro is cited as taxon author in a paper authored by three people.

Chapter authors are only considered for bibtex books. There may be some reference data from SF that are inconsistent with this.  Possible reasons would include incorrect original data entry. If anyone finds such a case that cannot be resolved under these guidelines, please bring up in GitLab.


feat: sign in with token endpoint

What does the PR do?
This PR is about requesting and using an OTP to log in. The endpoint returns errors if:

[x] User is not registered.
[x] User inputs the wrong OTP.
[x] Validation errors on the user inputs invalid or wrong details

How should this be manually tested?

Enter your email to request for OTP

Make a POST request to the \api\v1\auth\signin-token endpoint with the following payload:

{
  "email"<EMAIL_ADDRESS>}

A 6-digit OTP is then sent to the user's registered email

Then, make a POST request to the \api\v1\auth\verify-signin-token endpoint with the following payload:

{
  "email"<EMAIL_ADDRESS>  "token": "123456"
}

Successful Response
On a successful testimonial creation, the API should return a 200 OK status code.
    {
      message: 'Sign-in token sent to email',
      status_code: 200,
    }

    {
      message: 'Sign-in successful',
      "token": "eyJhbGciOiJI.......",
      "status_code": 200
    }

Authentication Error:
When the user is not registered:
{
  "message": "User not found",
  "status_code": 404
}

Invalid OTP error
On Invalid OTP error, if the user is putting an invalid OTP or email:
{
  "message": "Invalid token or email",
  "status_code": 401
}

Validation:
The response should return a 400 Bad Request status code with appropriate validation error messages if any required field is missing or invalid.
{
  "message": ["email must be a string", "email must be an email"],
  "status_code": "400"
}

Task

[x] Create a POST endpoint POST /api/v1/auth/signin-token/ to request for OTP for registered users.
[x] Implement server-side logic to handle successful and failed update requests.
[x] Ensure the registered user receives an OTP in their email.
[x] The OTP is properly saved in the database by hashing it
[x] Check that the OTP is valid
[x] Then the user gets a token after all validations are passed

Reference Issue: Link to Issue

Change your title and PR template to follow the approved standard

Also fix your workflow

Also fix your workflow

Kindly check the updated PR @davidolanrewaju

Fixed @Homoakin619

Fixed @Homoakin619


Normalized Export

Problem Statement
(I'm not sure if this feature request is best placed here or in keycloak itself ... I'll first try here ...)
We use keycloak-config-cli to properly define the configuration of our Keycloak server in my-realm.json. That's great!
But we use manual configuration as well, usually because we need try and error to find the proper configuration.
To get manual changes into my-realm.json (and thus get a well-defined state again), we diff keycloaks export (kcadm.sh create realms/my-realm/partial-export) before and after the manual change.
Problem with that is: the diff gets big, mostly because ordering in some of keycloaks arrays doesn't matter, and keycloak returns entries in different order. And because we regularly delete and create the realm from my-realm.json to play save - which causes Keycloak to choose new id s.
Proposed Solution
Is it possible to provide normalized realm exports that:

sorts arrays where ordering doesn't matter (e.g. protocolMappers and org.keycloak.keys.KeyProvider)
normalize id s by replacing the uuids with a numbers: first with 1, then 2, etc

We currently use jq to manually do some normalization (see below).
Best regards, Michael
#!/bin/sh
if [ "$#" -ne 1 ] ; then
echo "Normalize arrays and ids"
echo "usage: normalize.sh <src.json>"
exit 1
fi
set -e
json=$(cat "$1")
json=$(echo "${json}" | jq '.clientScopes = (.clientScopes | sort_by(.name))')
json=$(echo "${json}" | jq '(.. | select(.protocolMappers?) | .protocolMappers) |= sort_by(.name)')
json=$(echo "${json}" | jq '(.components | .["org.keycloak.keys.KeyProvider"]) |= sort_by(.name)')
json=$(echo "${json}" | jq '(.components | .["org.keycloak.storage.UserStorageProvider"] | .[] | .subComponents | .["org.keycloak.storage.ldap.mappers.LDAPStorageMapper"]) |= sort_by(.name)')
json=$(echo "${json}" | jq '(.components | .["org.keycloak.services.clientregistration.policy.ClientRegistrationPolicy"]) |= sort_by(.name, .subType)')
json=$(echo "${json}" | jq '(.. | select(.["allowed-protocol-mapper-types"]?) | .["allowed-protocol-mapper-types"] ) |= sort')
json=$(echo "${json}" | jq '(.. | select(.id?) | .id) |= "XXX" ')
echo "${json}" | jq --sort-keys
Environment

Keycloak Version: 19.0.3
keycloak-config-cli Version: 5.3.1
Java Version: 17

I've started a draft implementation of this feature over at https://github.com/adorsys/keycloak-config-cli/pull/818.
The general idea is to use Javers to diff the objects, comparing them to a "baseline" realm export for any given Keycloak version, and then using that diff to produce a normalized/minimized yaml file that can later be imported using keycloak-config-cli.
Any inputs on particular choices or ideas on how to do it better are much appreciated!

Hello!
@sonOfRa, how is it going with normalization? I have a similar requirement: show diff before deployment of the new configuration. I've started but I've found this issue and think that it would be better to wait for your implementation and then tune it for my case.

Hi!
I'm making progress, but it's relatively slow going. There's a few edge cases that pop up every now and then when trying the current state out with different realm configurations. Most of the important features of the keycloak config are already present in the normalized config now, but one big block that is still missing is the "components": [] block, which is a quite complex type that isn't very constrained, and as such a bit difficult to "normalize" without accidentally breaking things.

I see. components are like Map<String, Object> 😄. Currently, I think that we can just make a deep ordering for the keys of that maps and it may cover most cases. At least, it will be reproducible.

I am also interested in this feature. @sonOfRa can you elaborate what the state of progress is? Are there any blockers for you?

We had a similar problem. Our solution was to replace ids (search by regex, replace with XXX) and use a JSON diff tool like https://www.jsondiff.com/. That reduces the problem to the order of elements in arrays but this is not very hard to check by hand.
After a few roundtrips we had enough experience and examples in our realm.json to do most of the configuration directly in the realm.json.
But for the migration from "configuration by admin ui" to keycloak-config-cli a tool like https://github.com/adorsys/keycloak-config-cli/pull/818 would have been great :D

Hi @thomasdarimont,
I have added additional test cases to ensure comprehensive coverage for the recent implementation in https://github.com/adorsys/keycloak-config-cli/pull/1207. Please review them at your convenience , The workflow has now been completed. You can view it here: https://github.com/adorsys/keycloak-config-cli/pull/1233. Are there still some components that need to be migrated from Keycloak 26.0.5 with the current implementation?


[Feature Request] Build just the DNN submodule

First off, congratulations on making the only DNN library for C++ that (a) compiles easily without requiring a zoo of dependencies and (b) performs well on a variety of machines -- Caffe fails (a), and many alternatives like tiny-cnn fail (b).
One of the reasons I care about those things is that I do a lot of distributed systems work, where each machine might have slightly different hardware configuration (and thus, slightly different libraries available). Being able to recompile a project quickly and automatically for each machine is pretty important to my use case.
However, I'm currently only planning to use the DNN features of your library, and that appears to only use 10% or less of the total library. Compiling the other 90% adds a significant amount of overhead to the deployment process, so I was wondering if some compile-time switches could be added to decide which modules are enabled. Perhaps something like SFML, which is composed of 5 semi-independent modules.

Take a look at this file https://github.com/davisking/dlib/blob/master/dlib/all/source.cpp - there are switches you are looking for
Also you can copy-paste parts from this file (or include it) into your project and you will not need libdlib at all

There are also switches in cmake to disable the GUI, which is maybe what
you want.
But compiling things doesn't take that long.  Are you using parallel builds
e.g. make -j12?

Interesting. I didn't realize everything was brought together in one file. @davisking I have been doing parallel builds, I just don't have the beefiest machine available for running the builds at this moment.

It shouldbe noted that dlib/all/source.cpp doesn't include the CUDA code
needed to run the GPU version of the deep learning tools though.  You can
only run the CPU version with that file.
You can also use cmake to install a shared library version of dlib.  Then
you won't have to build it at all from then on.

Unfortunately I am not the sysadmin of the machines I'm trying to use DLib on, so installation is not really an option.

@jpdoyle, put libdlib.so into your app folder and run with changed LD_LIBRARY_PATH
LD_LIBRARY_PATH=. ./your_application
or use static version of dlib. so you have a lot of ways to optimize your process
library itself is 99% header-based, so dont worry about its size and modularity and I think, dlib has enough switches for excluding modules


Create supporting-the-commons-2024.md

@WinsCodes New event, please add to the portal with these logos for the hosts.

@laeccles This event has been merged with the PL Events PROD.


run global setup before test files load; closes #4508

BREAKING CHANGE
Mocha#run() was orchestrating if and when to run global setup/teardown fixtures, but Mocha#run() must be called after test files have been loaded.  This is a problem, because:

--delay may expect something created in a fixture to be accessible, but it won't be
Any future support for async suites is similarly negatively impacted
It was inconsistent between "watch" and "single run" mode; "watch" mode already has this behavior!

This change causes setup fixtures to run before any test files have been loaded.  In Node.js, this happens in lib/cli/run-helpers.

Added two functions to Mocha; Mocha#globalSetupEnabled() and Mocha#globalTeardownEnabled() which both return booleans
Correct order of operations is asserted in test/integration/global-fixtures.spec.js
Removed low-value (and newly broken) unit tests where Mocha#run called runGlobalSetup/runGlobalTeardown
Add a note to browser-entry.js about global fixtures

This is breaking because:

Browser users now must run setup/teardown fixtures manually.
Somebody's test harness might expect test files to be loaded (and suites run) before global setup fixtures execute.

We should probably merge this, even though I'm loathe to break it--the original design will cause major headaches in future development.  My bad!
Closes #4508

Coverage increased (+0.02%) to 94.138% when pulling 6bf7da79d5f9377334dfdf9ba9ea49035bbc3cd7 on boneskull/issue/4508-global-fixtures into c6856babc32b8556302a697429114d917dc70427 on master.

@boneskull Is there any chance of a merge in the near future? This issue is really a pain point for us.

@juergba Could you take a look into this?  It would be nice if it gets prioritized

Can you please commit this

@tj

@boneskull

So glad to see this PR being resurrected 🎉  this bug is a pain in the ass 😄
I understand that maintenance-crew need to take a look at this and approve/improve but if there is something I could help with to push this forward then I can try ;)


Anudishu patch 1

Thank you for your submission! We require that all contributors sign our Contributor License Agreement ("CLA") before we can accept the contribution. Read and sign the agreement
Learn more about why HashiCorp requires a CLA and what the CLA includes

0 out of 3 committers have signed the CLA.

[ ] Alvaro Hernandez
[ ] ajha63
[ ] anudishu

Alvaro Hernandez seems not to be a GitHub user.
You need a GitHub account to be able to sign the CLA. If you already have a GitHub account, please add the email address used for this commit to your account.
Have you signed the CLA already but the status is still pending? Recheck it.

modified techege

fgf


Added CSS value functions documentation

Subject
CSS value functions
Description
Create a CSS value functions documentation page that integrates the currently documented gradient and the newly added color-mix, min, max, clamp, calc and repeat, minmax integrated into the CSS value functions documentation page.
Are you willing to participate in creating this documentation page and create a pull request?
Yes

Fixed #2654


Apply fixes from StyleCI

This pull request applies code style fixes from an analysis carried out by StyleCI.

For more information, click here.

Pull Request Test Coverage Report for Build 698

0 of 1 (0.0%)  changed or added relevant line in 1 file are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 0.0%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/Command/AbstractCommand.php
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/Command/AbstractCommand.php
2
0.0%

Totals

Change from base Build 696:
0.0%

Covered Lines:
0

Relevant Lines:
222

💛  - Coveralls

Codecov Report

Merging #141 into progress-bar will not change coverage.
The diff coverage is 0%.

@@              Coverage Diff              @@
##             progress-bar   #141   +/-   ##
=============================================
  Coverage               0%     0%
  Complexity             76     76
=============================================
  Files                   9      9
  Lines                 238    238
=============================================
  Misses                238    238

Impacted Files
Coverage Δ
Complexity Δ

src/Command/AbstractCommand.php
0% <0%> (ø)
28 <0> (ø)
:arrow_down:

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 1adb798...3f165d2. Read the comment docs.


set args instead of value in Expression::and_then

The and_then operator in Expression currently overrides the value in context. Change it to set the args. Everything else remains the same.

/bounty 100

/attempt 1481


Wrong mention of Security role

The highlighted text should be App Opener instead of App Owner role.

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

ID: 3c40f87c-1a3a-399d-d25f-ae348dc5e248
Version Independent ID: 4784510f-a482-f73a-85e2-f2e6d74168c3
Content: Create or edit a security role to manage access - Power Platform
Content Source: power-platform/admin/create-edit-security-role.md
Service: power-platform
Sub-service: admin
GitHub Login: @paulliew
Microsoft Alias: paulliew

Thanks for your comment, @anjanchidige. This issue has been assigned to the doc author for review.


proposal: allow & as l-value operator

background
Currently you can use the deref operator, *, to assign a T to a *T:
type Uint64 uint64

func (u *Uint64) unmarshal(s string) (err error) {
        *u, err = strconv.ParseUint(s, 10, 0)
        return
}

However there is no way to deref a returned value:
type Struct struct { url.URL }

func (s *Struct) unmarshal(s string) (err error) {
        var u url.URL
        u, err = url.Parse(s)
        s.URL = *u
        return err
}

description
I propose we allow the reference operator, &, to be applied to l-values:
func (s *Struct) unmarshal(s string) (err error) {
        &s.URL, err = url.Parse(s)
        return err
}

costs
This adds a new operator for l-values, but the & operator has a consistent value, so it seems intuitive. Currently, this can probably only be added to =, since := does not support *, see #30318.
This should be backwards compatible with Go 1.

Aside from saving one line, what would this allow go programmers to do that they cannot do today?

The benefit I see is that it makes for a simpler mental model. Much like how there is interest to make = work like :=, I am interested to make & work for l-values and r-values, so that ones intuition about how things works is correct.
You are not wrong that in the provided example it only saves one line, and you can always define more stack variables to solve a problem, but I think there is an elegance to direct assignment that is valuable.
Also, I would ask why we allow * on the left hand side, as by your reasoning it is not required either.

Alternatively the type of s.URL could be changed to avoid having to add a new syntax.

There are valid reasons one may not want to use pointers. url.URL is just an example, something similar can be conceived for other pointed types. I tend to use value types to enforce immutability, but I have also been burnt by pointers to primitives.
That being said, there may also be an opportunity for the compiler to optimise &s.URL, err = url.Parse(s) in a way that it cannot for u, err := url.Parse(s); s.URL = *u, but that may also be nonsense.

I can’t see an argument for not changing the fields type to make the code read better. It can’t be for performance because if it was the copy from the dereferencing u will dominate.
 I think there are more valuable changes that could be made given the extremely conservative stance to adding anything to the language.

I assume from your example that the semantics of
&a = b

is equal to
a = *b

I don't like operators on the LHS that are really operations on the RHS.
Having &a on the LHS makes it look like this is an operation on addresses, but it isn't. It is an operation on values.
In other words, if a and b are of type int, then my intuition says that *ints are flowing across the =, but that's not the case.

I think that in the initial description where you wrote var u url.URL you mean to write var u *url.URL.  That confused me for a while.

This seems like a very specific example of the fact that when a function returns more than one result we can't apply an operator directly to the result.  For example, one could similarly imagine rewriting
func F1() (int, error) { ... }

func F2() {
    var (i, j int; err error)
    i, err = F1()
    j = -i
}

as
func F2() {
    var (j int; err error)
    -j, err = F1()
}

That is, the same pattern arises for any unary operator.  And in fact it arises for any binary operator if we use the += form.
What's special about the unary * operator that it deserves special treatment?

That is fair, I am game for adding other operators (with return values) as valid l-value operators. I just started with something that I saw and had an intuitive and readable solution. Yoyu can currently deref l-values, so why not address them too?
If I understand your suggestion correctly, this would involve the following unary operators. I think everything makes intuitive sense and reads pretty well:
var (i int; b bool; p *int; err error)

+i, err = strconv.Atoi("5") // 5, <nil>
-i, err = strconv.Atoi("5") // -5, <nil>
!b, err = strconv.BarseBool("true") // false, <nil>
^i, err = strconv.Atoi("5") // -6, <nil>
*p, err = strconv.Atoi("5")
&i = flag.Int("i", 0, "")
c<-, err = strconv.Atoi("5")

The assignment operators have a bit of stutter to them: i+=, err = strconv.Atoi("5") or +=i, err = strconv.Atoi("5"). If this feature was desired, we could instead reserve the right side of left hand operators, since i+, err = strconv.Atoi("5") looks visually similar to i += 5. That being said, this subset is getting pretty out there, and I am not sold on the syntax. However, I am not opposed to their inclusion, and will omit their enumeration for brevity.

On the other side of the argument, since I fear @ianlancetaylor's comment was a straw man, if we are uncomfortable adding any more l-value operators, maybe we should consider removing the ones we have in some future Go2 release. Clearly they are not required, since we can just make more stack variables.

I dont think we have any l-value operators, at least not in the sense of &s.URL = F().  The left hand side of an assignment is permitted to be any addressable value (or a map index expression or _) (https://golang.org/ref/spec#Assignments). A pointer indirection is an addressable value (https://golang.org/ref/spec#Address_operators).
That is, because we are permitted to write &*p, we are permitted to write *p = F().  This is not inherently different from the fact that we can write s.f = F() for some struct value s.

To me having all unary operators also on the left side impairs readability as the operation on both left and right side need now be merged mentally to understand how the value of an expression assigned is computed. They might also be visually much further away the current examples.  * is special in that regard as it only signifies where to store a value unmodified.

Interesting, so I cannot &s.URL = F(), because &&s.URL is invalid. Not exactly how I was thinking about the parser working, but it follows logically. Let me ask a follow up then, why can we not make &s.URL addressable? That would allow for my use case, without building a new spec for l-values.

func (s *Struct) unmarshal(s string) (err error) {
        s.URL, err = &url.Parse(s)
        return err
}

Do you mean *url.Parse(s), because we do not want (**url.URL, *error)? Would it simply try to dereference all the parameters, just do the first one, or do some complex type inference? And if it is the latter, why can we not just do that by default?

Let me ask a follow up then, why can we not make &s.URL addressable?

What would its address be? What would it mean to store a value at that address?

No further comments.


change ls to list in getting started docs

Setting up, noticed that ls was at some point changed to list -- as per the super helpful command line feedback!

Codecov Report

Merging #121 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #121   +/-   ##
=======================================
  Coverage   93.16%   93.16%
=======================================
  Files          13       13
  Lines         541      541
=======================================
  Hits          504      504
  Misses         37       37

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 cf525b4...0e63599. Read the comment docs.

list is probably easier to learn than ls. Unless we have a bug ls should work as well though. Your screenshot makes me think it doesn't anymore? If that is the case we should investigate/create a new issue.

Figured it out!! I wasn't using a python 3 virtualenv... With python 3 ls and list both work just fine!

I'd be happy to re-open&merge this. It had never crossed my mind that the alias might not work in python2. So adding a comment to the docs mentioning this as well as changing to the long form that always works seems like a good move.

Makes sense! Added a line about python3 aliases!

Thank you :)

Hi @erinspace we operate under what is often called "the pull request hack" (see #10). Basically once some of your work has been merged we add you to the list of people who can merge other's work. Would that be Ok with you?


Generate code from alternate schema sources

Currently moor can generate data classes from CREATE TABLE statements in .moor files, or from Table subclasses in Dart. Would it be possible to also support generating data classes from an existing sqlite database file?
The motivation behind this request is to simplify migrations. Currently when you change the database schema you have to:

Update the CREATE TABLE statement (or the Table subclass) and regenerate code
Bump the schema version
Write a migration

There are a few downsides to this approach

Have to make edits in 3 different places, which introduces the possibility for skew between the CREATE TABLE statement and the migration
Unit tests will create the database from scratch (onCreate is called instead of onUpgrade), meaning tests will still pass even if you forget to write a migration (this happened!)
Issues managing a single schema version with multiple developers working on the same repository

Instead, this is how we're thinking of doing migrations:

The database has a migration table: CREATE TABLE migrations (migration_id INTEGER NOT NULL PRIMARY KEY)
The app code has a Map<int, Future<void> Function(Database)> migrations = {...}
When you change the database schema, add a new entry to this map

key is migration_id (the current timestamp)
value is a function that takes a database (or query executor?) runs a migration

Migrations should be deterministic raw SQL statements (they shouldn't use generated code or variables)
In the beforeOpen callback, apply any migrations that haven't been applied yet. Something like:

Future<bool> runMigrations() async {
  bool hadMigrations = false;
  await ensureMigrationTableCreated();
  List<int> pendingMigrations = /* Keys from the `migrations` map that don't exist in the migrations table */;
  for (int migrationId in pendingMigrations) {
    //await transaction(() async { <- #216
    await migrations[migrationId](db);
    await markMigrationApplied(migrationId); // INSERT INTO migrations VALUES ($migrationId)
    hadMigrations = true;
    //});
  }
  return hadMigrations;
}

With this approach:

it's impossible to forget a migration step since there's only 1 step - add the migration to the map
no possible skew between migration code and CREATE TABLE statements
there's a single migration path (no onCreate vs onUpgrade), meaning all migrations are implicitly tested since they're the only way to change the schema
more conducive to multiple developers writing migrations for the same repository

How we're planning to implement this approach:

Don't commit the database.g.dart file to version control
Write a build script that will:

Use moor_ffi to create an in-memory sqlite database
Run the migrations on that database
Generate a .moor file containing the CREATE TABLE statements from the database schema using PRAGMA table_info or the sqlite_master table
Run the moor generator to create data classes

This looks like it'll work for our case, but I figured I'd open an issue describing our problem and solution to see if you think moor could help in any way.

From the other issue it sounds like you've already started to work on this, how did that work out so far? While this sounds like a feature that would be nice to have, we already have two different apis to describe a schema (Dart DSL and moor files). I feel like adding a third could confuse users. If you're interested, maybe this could be published as a third-party package?

see if you think moor could help in any way.

If you run into any problems on the way where moor could make things easier, then that's always worth an issue of course. The generator is a bit hard to understand at the moment, I want to document it better and provide some sort of stable api. If you need anything specific, like creating in-memory "fake" moor files as strings and generating Dart code based on that, I could look into those areas more.

Mostly replied in https://github.com/simolus3/moor/issues/240#issuecomment-559580855.
One of the main issues I anticipated with this approach was that having the schema strewn across multiple files would make it inconvenient to view the current schema.
This ended up not being as big of an issue, since part of our workflow already involves dumping the schema to a file (or pulling it from the device/simulator) and opening it in a 3rd party database tool (like the IntelliJ "Database tools and SQL" plugin) to expriment with queries.
The other issue with this approach is that we have to get a bit hacky if we want to use .moor file features like CREATE TABLE ... AS MyTable or the upcoming MAPPED BY - we're just using a config file for now with a map of tableName:dataClassName.

Cool, thanks for sharing the results!

we're just using a config file for now with a map of tableName:dataClassName.

I assume you're doing some parsing for that feature? So if there was foo: CustomName in that map, you'd automatically replace a CREATE TABLE foo (...) with CREATE TABLE foo (...) AS CustomName when writing the moor file?

The other issue with this approach is that we have to get a bit hacky if we want to use .moor file features like CREATE TABLE ... AS MyTable

Ah right. But if you're creating moor files automatically there's not much that the generator could do about that. Maybe it could expose an api to "desugar" those features, so that some constraints are stripped away from the sql. You could then adapt the build script to

create moor-style CREATE TABLE statements in the migration functions
strip those constraints away using apis provided by the generator (if you don't care about performance a lot, you could do this on a very low-level, for instance by wrapping a QueryExecutor and performing the transformations there)
add the original create table statement to a moor file
execute the stripped create table statement on the vm database

Downsides are that you could no longer use the mechanism reading from sqlite_master, so that's a bit of uncertainty introduced. But I imagine that for constraints on columns, like JSON KEY or MAPPED BY, it could work more reliably than a config file.

So if there was foo: CustomName in that map, you'd automatically replace a CREATE TABLE foo (...) with CREATE TABLE foo (...) AS CustomName when writing the moor file?

Yeah exactly - the script creates all_tables.moor (gitignored) with this, then runs build_runner.

create moor-style CREATE TABLE statements in the migration functions

Hmm interesting idea, although it might get kinda complicated trying to figure out which of a table's .moor constraints are "current" across multiple migrations. Those constraints don't affect the actual schema on disk, so keeping them in a config file instead of in migrations seems more natural to me.
Also since we manually call MigrationHandler(proxyDb).runMigrations(); before opening the database, the desugaring would have to happen at runtime. That's probably fine since migrations are only run once and the performance hit from desugaring would be tiny compared to the actual time running the whole migration, but the extra complexity probably isn't worth it imo.


Not a tty error while logging into Docker registry

Hi!
I'm facing an annoying issue that I've spent 4 hours trying to solve.
I'm deploying my app from GitLab CI/CD using the kamal deploy command, but it fails on the first step, which is docker login. I tried to debug it with the kamal login command:
kamal registry login -L -d staging -c .kamal/deploy.yml -v
INFO [4cc56c39] Running docker login git.registry:5050/app -u [REDACTED] -p [REDACTED] on app.domain.com
<EMAIL_ADDRESS>password:  ERROR (Errno::ENOTTY): Exception while executing on host app.domain.com: Not a tty

It looks like it's missing either the password or username, so I dug deeper.
Normally, I use GitLab-provided variables like this:
registry:
  server: git.registry:5050/app
  username:
    - CI_REGISTRY_USER
  password:
    - CI_REGISTRY_PASSWORD

Long story short, I created a fixed GitLab token to pass, and I even hardcoded it for testing. I passed variables explicitly and tried many approaches, but since nothing worked, I decided to create this issue. Here's what I tried:
registry:
  server: git.registry:5050/app
  username: deploy
  password: somehardcodedpassword

Using this exact same configuration on my local machine works just fine. However, on the GitLab CI pipeline, it always errors because of TTY, which makes sense if no value is passed, but I can't even see the [REDACTED] values.
How is it possible that even hardcoded variables don't work, let alone environmental values? The docker login command works on the server, and kamal login works on my local machine

Probably it is also not the matter of environment variables as logout command also fails:
kamal registry logout -d staging -c .kamal/deploy.yml -v
Command: docker logout git.registry:5050/app
<EMAIL_ADDRESS>password:  ERROR (Errno::ENOTTY): Exception while executing on host app.domain.com: Not a tty

Finally fixed that issue. It turned out to be an SSH error rather than a Docker registry error.
While we can close this issue, I've noticed a potential improvement regarding where the error occurred in the log file.


feat(material/theming): Add palette values to system variables

Feature Description
Prior to the theme mixin you could access palette tone colors from the theme object. It would be useful to add this as system variables for parity. Apps that use the theme mixin don't have a theme object anymore and may still want to access those colors.
Use Case
No response

IMO, it could be nice to also have typography variables such like (not just colors) :
--mat-sys-typography-plain-family: Roboto;
--mat-sys-typography-brand-family: Roboto;
--mat-sys-typography-bold-weight: 500;
--mat-sys-typography-medium-weight: 400;
--mat-sys-typography-regular-weight: 300;

This should be among the top-priority todos


Provide a slimmer docker image to reduce deployment time

Is your feature request related to a problem? Please describe.
The Azure static web app deployment relies on pulling a 1.98GB docker image from mcr.microsoft.com/appsvc/staticappsclient:stable. This image takes roughly 40s to download on a GitHub-hosted runner. As a result, many deployments of static web apps take >1m in total time (assuming changes to the static content are relatively minimal). Since GitHub actions billing rounds up to the nearest minute, many of these deployments cost 2m of billable time. If a smaller image was provided, then deployments into static web apps should take less than a minute on average, and therefore halve the cost of billable action minutes, a significant savings.
I also would make a safe bet that the image contains a lot of unnecessary binaries. Minimizing this image would reduce security attack surface area and also reduce bandwidth and storage costs for serving the image.
Describe the solution you'd like
The staticappsclient image is based on a Debian stretch base image. I created my own image using stretch-slim as a base, copied over Oryx and StaticSiteClient binaries from the official image, and ended up with a working image 281MB in size. This is over a 85% reduction in size. This image takes less than 10s to download on a GitHub-hosted runner compared to 40s for the official image.
I believe an official image can be made that is in the same ballpark in size and published as the new mcr.microsoft.com/appsvc/staticappsclient:stable image.
Describe alternatives you've considered
You could look at alternative ways of serving this image faster, perhaps using caching within GitHub. I was not able to use any of the GitHub action caching features to make this any faster than downloading directly from MCR. The only way I could significantly optimize the deployment time was to reduce the size of the image.
Additional context
None

I think the use of Docker is a mistake for this sort of GitHub action, there should at least be a TypeScript based action without the need to pull/build a docker image if all I'm doing is running npm build or even just copying static files I've created some other way.

The current mcr.microsoft.com/appsvc/staticappsclient:stable is now a gargantuan 2.41GB. We are unfortunately moving in the opposite direction.
I have created a drop-in replacement for this image which handles basic static file deploys. You can use it by swapping out references from Azure/static-web-apps-deploy@v1 to ajraczkowski/static-web-apps-deploy@v1. This uses an image of size 281MB for the deployment. I've tested this with static file deploys only, and I'd expect it to fail on more complex deployments. Should be Good Enough for most simple use cases.
I've published the source code for the image and for the github action in case you'd like to review it or make any improvements to it. I'd only expect this to be a temporary mitigation until we can get a suitable official replacement from the Azure static web apps team.

It's also strange that the image is rebuilt every time from the action's Dockerfile. The action should be a docker image, not a docker build. See e.g. https://stackoverflow.com/a/60679692

I think actions which are built in Docker build everytime, it's different from runs: using: 'docker'

Regarding the image size, we're working with the Oryx team on reducing it. /cc @daniv-msft @Reshmi-Sriram
And we'll update the action to just run the image instead of doing it via a Dockerfile. Unfortunately it doesn't look like it'll provide any improvements because the bulk of the time is spent pulling the image.

Quick update, we're continuing to work on this to trim down Oryx image

@thomasgauvin What ever happened to trimming down the Oryx and StaticSitesClient images?

We removed a few of the built-in runtimes required for certain static site generators (Go, Python, etc.) to pull them dynamically when needed, reducing the image pull time by about 10% (rolled out last Autumn). This is about as small as we can make the Docker image while retaining functionality.
We're keeping an eye on this area to see how we could further improve the build & deploy.

There is always the option of open-sourcing the tool. It comes across as very shady to me that the swa-cli is some wrapper around whatever this proprietary StaticSitesClient binary is and yet the swa-cli touts itself as "open-source".
If possible I would build the binary myself for the platforms I need it for (macos-arm64 and linux-musl-arm64 and linux-musl-x64) since the swa-cli is only a wrapper for a limited set of platforms and remove the need for a docker image completely.


What should pre-Installation checks to do?

Going to put them into this script here: https://github.com/subutai-io/guardian/blob/master/pre-check.sh

Here it should check may be if prev peer installation exists and clean it up properly


ceph-osd: allow to use ceph_tcmalloc_max_total_thread_cache for bluestore

TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES is for both bluestore and filestore
Signed-off-by: Seena Fallah<EMAIL_ADDRESS>

@dsavineau I was not sure about it like you and when I ask the community Mark Nelson said it is used for both of them<EMAIL_ADDRESS>

@dsavineau I was not sure about it like you and when I ask the community Mark Nelson said it is used for both of them<EMAIL_ADDRESS>
Yes both filestore and bluestore use tcmalloc but it seems the implementation is different.

Also its a variable that tcmalloc use it and I don't think tcmalloc can use Ceph variables!

That's not what I'm saying.
AFAIK the TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES env variable is consumed by the libtcmalloc and not but ceph itself.
Bluestore has more cache tuning which implement the tcmalloc allocator.
https://github.com/ceph/ceph/blob/master/src/os/bluestore/BlueStore.cc#L4062-L4064
https://github.com/ceph/ceph/blob/master/src/common/options.cc#L3944-L3984
@markhpc could we have you thoughts on this ?

@dsavineau I think tcmalloc isn't just for OSDs and Mons used it for memory allocation so bluestore configs aren't enough for Ceph cluster!

unstale please

@dsavineau @clwluvw what's the status on this one? any news?

@dsavineau @clwluvw what's the status on this one? any news?

I think @dsavineau needs a @markhpc review.

unstale please

We should definitely be using TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES with bluestore OSDs.  Not sure why it's being restricted to filestore here.  Looks right to me!

@markhpc thanks for sharing this!
looks like the patch is valid then.
@clwluvw sorry for the delay and thanks for your patience.
Could you rebase your branch on master, please? Thanks!

@clwluvw i rebased your branch on master

jenkins test centos-container-external_clients

jenkins test centos-non_container-collocation

jenkins test centos-container-collocation

jenkins test centos-container-collocation


Adding missing icons for when the host is in "Preparing for maintenance" status.

This is a patch for this bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1240304
When the host is in "Preparing for maintenance" status there is not corresponding icon to display its state.
So we added it.
Tnx<EMAIL_ADDRESS>for the icon.

@dclarizio Looks good


Tekton buildid task not able to apply

Expected Behavior
generate-build-id Task should applied
Actual Behavior
I'm trying to configure the generate-build-id inside my tekton, i followed the steps according catalog page when i'm trying to install build-service-api task yaml i'm getting below error.
kubectl apply -f https://api.hub.tekton.dev/v1/resource/tekton/task/generate-build-id/0.1/raw ( Already Installed)
k apply -f build-service-api.yaml
error: resource mapping not found for name: "build" namespace: "dev-pipeline" from "build-service-api.yaml": no matches for kind "Task" in
version "tekton.dev/v1betal"
ensure CRDs are installed first
Steps to Reproduce the Problem

Additional Info

Kubernetes version:
**Output of kubectl version:1.26

(1.26)

Tekton Pipeline version:
Output of tkn version or kubectl get pods -n tekton-pipelines -l app=tekton-pipelines-controller -o=jsonpath='{.items[0].metadata.labels.version}'

(0.48.0)

Hey @tppalani, version "tekton.dev/v1betal" seems weird, it should be tekton.dev/v1beta1 (or tekton.dev/v1).

I am going to go ahead and close. @tppalani feel free to ask me to re-open if it's not fixed.

@vdemeester  Thanks for your help


[Bug] SkyWalking Java Agent failed to work with Arthas in some cases

Search before asking

[X] I had searched in the issues and found no similar issues.

Apache SkyWalking Component
Java Agent (apache/skywalking-java)
What happened
When instrumented with SW Java Agent and then run "watch" with Arthas. Different errors reported for different classes:
For example, with Java Agent 9.1.0, watching redis.clients.jedis.Jedis reported UnsupportedOperationException,

With both 9.1.0 and 9.0.0, watching org.apache.kafka.clients.producer.KafkaProducer reported TypeNotPresentException,

What you expected to happen
No Error Happened
How to reproduce
You may use Jedis 3.1.0 to test the former case and use Kafka-clients 3.1.2 to reproduce the latter one.
Anything else
No response
Are you willing to submit a pull request to fix on your own?

[ ] Yes I am willing to submit a pull request on my own!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

@kylixs Any idea?

Is this some issue of Arthas? As the new auxiliary class, it is not available for Arthas

@lujiajing1126 Can you provide a demo to reproduction problem? Better put it on github

cc @xzyJavaX would help prepare demos

@kylixs https://github.com/xzyJavaX/dynamic-redefine-test. With java agent 9.1.0 to start, then start Arthas. Then
watch redis.clients.jedis.Jedis get -x 1
watch org.apache.kafka.clients.producer.KafkaProducer send -x 1

OK, let me have a look.


Added Support for >>, <<, >>= and <<= Tokens

PR Description
Added Support for >>, <<, >>= and <<= Tokens
Related Issue
Solves:
#54
#55
Checklist

[x] Have you added the necessary tests?
[x] Only modified the files mentioned in the related issue(s)?
[x] Are all tests passing?

Accidentally created a new branch from the branch of my prev PR that's why those changes are there.

hii @dotdot0 can you please resolve the merge conflicts


[WIP] Address standalone kubelet config case

Unblock deployment failures for standalone kubelet, which is when a node
is member of the kube-master group but not of the kube-node group.
Also place in global vars and do not repeat or hardcode the kube_*_dir
and kube_namespace vars for better code maintainability and UX.
Related https://github.com/kubernetes-incubator/kargo/issues/687
Signed-off-by: Bogdan Dobrelya<EMAIL_ADDRESS>

Not sure about having default only in all.yaml
what about to create a common/fact role  with those default and add meta/dependency?

We could do that in the following patches. I hoped only to fix things repeating itself here (it's a pain to make changes to defaults)

CI is here https://travis-ci.org/kubernetes-incubator/kargo/builds/183625911 (it's lost in the checks list after rebase)


Syntax error in ui.py

SyntaxError: invalid character in identifier
Traceback (most recent call last):
File "ui.py", line 1
∑import importlib
^
SyntaxError: invalid character in identifier
Remove the "∑" and it works again.

Fixed, thank you!


NFT analyzer

an analyzer for NFTs. the term "NFT" is proposed to refer to specific instances managed by a contract.
this code highly experimental and missing some important things.

NFT analysis jobs involve downloading a "metadata" file from a URI given by a smart contract. currently those jobs may fail. we do not have a system for scheduling those jobs to be retried
a contract may point to a server that is arbitrarily slow. currently we set a timeout of 30 seconds for downloading this file. but yeah, anyone could make the analyzer as slow as 30s/batch
we have no way to start on more jobs if only a few downloads are straggling.
we have no policy for judging what errors to treat as permanent, when it comes to downloading this metadata file

conflicts:

there's ongoing work #511 to build a superclass for analyzers like this. can we use that here? in anticipation, I have not written much to go around the actual download logic, e.g. it's a single-threaded download loop in this PR
I think I saw there's something in the reckoning fixes #512 for unifying certain analysis.something and chain.something tables. might the principle leading to that apply here too?

opening this for "review," although it might be easier not to merge this for quite some time. there's no API for the data this collects, and the analyzer is very un-robust, and it's missing some features that will affect the tables added here


get_leaderboard timeout

async def lead123(msg: Message):
    client = valorant.Client(KEY, region="jp")
    lb = client.get_leaderboard(size=15)
    print("Top Players in EU:\n")
    # Print all players on the leaderboard.
    for p in lb.players:
        print(f"#{p.leaderboardRank} - {p.gameName} ({p.numberOfWins} wins)")

I'm using this command for a bot,but err occurred like this
region="eu" also time out.Is this a normal Internet connection err?
my api key isn't invalid
error handling command: lead
Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connection.py", line 174, in _new_conn
    conn = connection.create_connection(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\util\connection.py", line 72, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.1520.0_x64__qbz5n2kfra8p0\lib\socket.py", line 955, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 703, in urlopen
    httplib_response = self._make_request(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 386, in _make_request
    self._validate_conn(conn)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 1040, in _validate_conn
    conn.connect()
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connection.py", line 358, in connect
    self.sock = conn = self._new_conn()
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connection.py", line 186, in _new_conn
    raise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x0000029608D670A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\adapters.py",
line 489, in send
    resp = conn.urlopen(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\connectionpool.py", line 785, in urlopen
    retries = retries.increment(
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\urllib3\util\retry.py", line 592, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='jp.api.riotgames.com', port=443): Max retries exceeded with url: /val/content/v1/contents?locale=zh-CN (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000029608D670A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\khl\command\command.py", line 87, in handle
    await self.execute(msg, *args)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\khl\command\command.py", line 119, in execute
    await self.handler(*args)
  File "C:\Clone_Gitee\Valorant-kaiheila-bot\code\main.py", line 137, in lead
    await lead123(msg)
  File "C:\Clone_Gitee\Valorant-kaiheila-bot\code\val.py", line 50, in lead123
    client = valorant.Client(KEY, region="jp")
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\client.py", line 72, in __init__
    self.get_content(cache=True)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\client.py", line 178, in get_content
    content = self._content_if_cache()
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\client.py", line 80, in _content_if_cache
    return ContentDTO(self.handle.call("GET", "content"))
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\valorant\caller.py", line 52, in call
    r = self.sess.request(m, url, params=params)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\sessions.py",
line 587, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\sessions.py",
line 701, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\m\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\requests\adapters.py",
line 565, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='jp.api.riotgames.com', port=443): Max retries exceeded with url: /val/content/v1/contents?locale=zh-CN (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000029608D670A0>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))

And this function works well
lb = client.get_leaderboard(size=100)

# Find all the players on the leaderboard with 10 wins.
# `.find_all` is an alias for `.get_all`, provided for semantics.
players = lb.players.get_all(numberOfWins=10)

for p in lb.players:
    print(f"#{p.leaderboardRank} - {p.gameName} ({p.numberOfWins} wins)")

I found out that if I set a region.It will return a err

now it works well
client = valorant.Client(KEY, locale=None,region='ap',route='asia')
        lb = client.get_leaderboard(size=sz)
        players = lb.players.get_all(numberOfWins=num)
        cm = CardMessage()
        for p in lb.players:
            c1.append(Module.Section(f"#{p.leaderboardRank} - {p.gameName} ({p.numberOfWins} wins)"))
            #print(f"#{p.leaderboardRank} - {p.gameName} ({p.numberOfWins} wins)")
        cm.append(c1)
        await msg.reply(cm)


Example uses

Hi,
Would it be possible for you to provide some real world example uses of this; IE using the res value outside of the ping function or returning it in some way?
The fact that this packaged uses a callback (and not something like promises) seems to be confusing myself and others (plus exacerbates Callback Hell)
I know its a lot to ask but it would be fantastic if you could just use this asynchronously, IE:
  const server = await mcping('mc.hypixel.net', 25565)

console.log(server) // Returns the Response packet

EDIT: sorry for closing and reopening this issue, im battling with trying to work out how to use this package

If anyone can assist with actually using this package, im really struggling. The following returns undefined (as expected):
    const getLiveStats = new mcping.MinecraftServer('mc.hypixel.net', 25565)

    const getplayers = async () => {
      getLiveStats.ping(500, protocolVersion, (error, response) => {
        return response.players
      })
    }

    const TEST = await getplayers()

    console.log(TEST)

TEST here is undefined. I have no idea how youre supposed to return a value frommcping.MinecraftServer 😅

Hi,
For those wondering I have managed to get this working:
    const getServerData = new Promise((resolve, reject) => {
      let pingData = new mcping.MinecraftServer("mc.hypixel.net", 25565).ping(
        TIMEOUT,
        PROTOCOL_VERSION,
        (err, result) => {
          if (err) {
            resolve(null)
          }
          resolve(result)
        }
      )
    })

    const pingData = await getServerData

console.log(pingData.players) // Logs out players: { online: 188, max: 1500}