Site change Commit.

There are some site changes, basically changing the look and feel of it.

Screenshots [ Major updates are in hover as well ]

https://aryan-upa.github.io/Drifty/
you can see working link here.

@aryan-upa Please make some required changes here. The text is not visible in dark mode.

@aryan-upa Also you need to make a change over here. The icons are not properly visible. Please specify whether the below image is in light or dark mode.

Also, please fix this. "Demonstration" word gets cut when i resize the screen to a smaller size. And the video doesn't Autoplay.

@aryan-upa Also you need to make a change over here. The icons are not properly visible. Please specify whether the below image is in light or dark mode.

this is in dark mode, I didn't actually changed anything there.

@aryan-upa Also you need to make a change over here. The icons are not properly visible. Please specify whether the below image is in light or dark mode.

this is in dark mode, I didn't actually changed anything there.

Please change the footer background from white to black and in light mode, change it from black to white and please make those icons in the footer more prominent

@aryan-upa How much is completed?

I am working on the dark mode colors.

aryan-upa.github.io/Drifty/ responsive updates can be seen here. Pls, confirm.

aryan-upa.github.io/Drifty/ responsive updates can be seen here. Pls, confirm.

The below parts need changes - - (Along with that, the video doesn't autoplay)

aryan-upa.github.io/Drifty/ responsive updates can be seen here. Pls, confirm.

The below parts need changes - - (Along with that, the video doesn't autoplay)

@aryan-upa Please make the required changes.

I am working on the dark mode, hopefully can confirm it's completion by evening.

Ok, then I'll review it after you complete it. Just leave a comment after you have completed it.

I am working on the dark mode, hopefully can confirm it's completion by evening.

Still the video is not playing automatically.

Resolved, website has new look and feel, dark mode is working and video is also playing. aryan-upa.github.io/Drifty/

Resolved, website has new look and feel, dark mode is working and video is also playing. aryan-upa.github.io/Drifty/

Ok let me check

Please see if you can change "dark mode button" to "toggle button" if it looks good.
The toggle button can be like this -

Please see if you can change "dark mode button" to "toggle button" if it looks good. The toggle button can be like this -

@aryan-upa

@aryan-upa You can make the toggle button like this - https://blog.prototypr.io/create-a-scenic-day-and-night-toggle-button-with-html-and-css-37a8e2532e68. It is visually very appealing.

@aryan-upa Please change the "dark mode button" to this - https://codepen.io/aliceyt/pen/eYpJobY

Please make the required changes, then , i shall review it.

Although it looks cool, but don't you think it'll have it's own impact on site speed.

all done.


fix: add toJson() method to onetime_task

Codecov Report

Merging #127 (8fd711f) into develop (734d523) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #127   +/-   ##
========================================
  Coverage    59.53%   59.53%
========================================
  Files           33       33
  Lines         1389     1389
========================================
  Hits           827      827
  Misses         562      562

Impacted Files
Coverage Δ

...onnect_for_snmp_poller/manager/poller_utilities.py
39.68% <ø> (ø)

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 734d523...8fd711f. Read the comment docs.

:tada: This PR is included in version 1.5.0-develop.8 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


bug: Wrong motd!

Getting wrong motd from new package version
I was using an old version of minecraft-server-util. It was version 3.7.2.
Getting motd was easy. I found on internet some javascript code to decode Minecraft colors characters (& or §).
Decoding code looks like this:
const
motd1 = response.description.descriptionText,
motd2 = motd1.toString().replace(/\u00A7[0-9A-FK-OR]/ig, '');

Result looked like this (3.7.2):

btw this is the right response as Minecraft server list shows.

But the problem is, that I updated to the newest version (5.1.2 for me)
And the motd is not right. Even the new "raw" and "clean" version.
This is the new (wrong) result (5.1.2):

Let me show you what's missing.

As marked, there is missing letter O in the word SuroCraft,
letter T in word SuroCraft,
the arrow that points to left on end of the motd(◄),
these characters (⋘⋇⋙) at the end and start of the motd line 2.
Help:
If you would need, I am pasting here the real motd line 1 code with color codes;
&l&6&m► &r&b&l Suro&c&lCraft&a.eu &6&l&m ◄&r
(There are some useless color code symbols lol.)
I am pasting here raw and clean results from status function (just first line):
'                ► SurCraf.eu (clean)
§f'                §6§m►§b§l Sur§c§lCraf§a.eu§6§l§m §f (raw)
By the way, if you wonder, there's an apostrophe at the start of motd lines. Why? Because we tried to center our motds by this way.
Note: I tried to use mentioned decoding code for minecraft color codes for the new one version.
Because (I think so) the raw of motd is broken too, decoding code is giving me the same answer as clean version.
Maybe you use the same decoding code?
Expected behavior:
Motd should be right as older version 3.7.2. What changed?

@PetyXbron This was actually fixed in minecraft-motd-util version 1.1.6. You can update that library (which is a dependency of this one) by doing npm update minecraft-motd-util.

Yes. Fixed. Thanks!


Port to android

TypeScript conversion should be merged in first. This branches off that conversion.

Looks good on iOS! I think those conflicts just need to be resolved and then we are good to merge.

@broskoski conflicts resolved


Recode radio buttons with nested controls

This PR includes a recode of the special use case Radio mixed with interactive elements. The goal is to move away from the ARIA Checkbox approach in trade for more traditional Radio buttons.
While keyboard focus order is not ideal, because of the design anti-pattern, standard keyboard functionality for Radio buttons (up/down/right/left) arrows and other accessibility wins are now present.
Changes/Improvements:

Native Radio buttons instead of checkboxes with radio roles
Native / expected keyboard support for Radio
Number of options available now communicated to screen reader
No longer triggering accessibility violations in some automated accessibility testing engines due to missing ARIA aria-checked role="radio" on native checkbox.
Pattern no longer breaks ARIA use rules #1 and #2
Reduced risk but not by much
Visually hidden content informing screen reader users about nearby controls

@silverli I've addressed your awesome feedback :)


Combine GitHub action OS jobs

We have two jobs defined, one for Linux and one for OS X, both in the test workflow and in the tagged-release workflow. Most steps are the same. We should just combine them and have the steps that differ be conditioned on the OS.
I think one can do like:
  steps:
    - name: foo
      if: runner.os == 'Linux'

or somesuch. This will also look nicer when we start doing multiple versions of each OS.

After we switched to using containers on Linux, I don't believe this is possible any longer. We can't condition the "container:" statements on the OS... thus closing for now. Maybe we'll go back to running directly on a VM instead of in a container and then this could become relevant again... but I find it more likely that we'll start running more things in containers since that allows us to test on all sorts of platforms, not just the few (two versions of ubuntu) provided natively by Github Actions.


meme sound board updated

Related Issue
meme sound board updated
Closes: #1082
Describe the changes you've made
A clear and concise description of what you have done to successfully close your assigned issue. Any new files? or anything you feel to let us know!
Describe if there is any unusual behaviour of your code(Write NA if there isn't)
A clear and concise description of it.
Checklist:

[ x] My code follows the style guidelines of this project.
[ x] I have performed a self-review of my own code.
[ x] I have commented my code, particularly in hard-to-understand areas.
[ x] I have made corresponding changes to the documentation.
[ x] New and existing unit tests pass locally with my changes.

Screenshots
Put any screenshot(s) of the project here.
https://user-images.githubusercontent.com/67833077/119503245-643f3d00-bd88-11eb-9735-5b073c7309d0.mp4

@harshgupta20 Sir Please review my PR .

@ridsuteri @harshgupta20 @991rajat  Sir Please add the label

thank you Sir


conda-suggest-conda-forge 2020.11.11

Merge only after success.
This pull request was auto-generated by rever

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.


Linker doesn't update gnutls version when searching for dylib

Hi there,
I'm running MacOS Ventura on an M2 Pro MacBook Pro. I think I let Brew update gnutls version from 2.7.8 to 3.8.0, and now ninja can't link my library to gnutls since it's looking for version 2.7.8_1. How can I update Ninja to look for the new version? I'm not explicitly asking for gnutls in any build.meson file.
Thanks for any help with this.

This doesn't sound like a problem related to Ninja at all, but to the Meson build files you are using. Ninja just runs the build plan generated by Meson, and that's what determines what is linked into your build artifacts. Try asking in a meson-related forum instead.


Updates Contact Us modal to use new modal blocks.

Changes

The Contact Us modal didn't get the new .modal__block containers added in Neue 6.0-beta5. This adds them.

Fixes #3933. For review: @DoSomething/front-end

:100:


[bug] set sample application module path as relative

when trying to run the sample app the followgin error occurs:
sas@ubuntu:~/devel/apps/securesocial/samples-and-tests/testapp$ play deps
~        _            _
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/
~
~ play! 1.2.4-RC2, http://www.playframework.org
~
~ Resolving dependencies using /home/sas/Dropbox/Public/devel/play/apps/securesocial/samples-and-tests/testapp/conf/dependencies.yml,
~
~
~ No dependencies to install
~
~ *****************************************************************************
~ WARNING: These dependencies are missing, your application may not work properly (use --verbose for details),
~
~	securesocial->securesocial ->
~ *****************************************************************************
~
~ Some dependencies are still missing.
~
sas@ubuntu:~/devel/apps/securesocial/samples-and-tests/testapp$

change dependencyes.yml file

The sample app takes the module from the central repository now. There's no need to use a relative path anymore.

yeah, I know (hey I reviewed it!)

I know you know :) I added the comment so people seeing this know what happened.


Column: ENDDATE is formatted wrongly

I have a problem while formatting a column called ENDDATE where the formatter will add a space between the 2 words resulting in an invalid sql query.
To recreate problem, try it out in demo at: https://zeroturnaround.github.io/sql-formatter/
Input:
SELECT ENDDATE from table1
Will result in:
SELECT END DATE from   table1

@Royvhorck1 could you provide the query that you are formatting? Also which SQL dialect are you using?

@andrestaht I have added an example. I am using regular SQL format

Thanks, @Royvhorck1!
Will have a look at this soon.

@andrestaht Thanks!

Thanks, that was a genuine regression, introduced by the previous version.
Fixed in version 2.3.1.
Thanks for reporting!

No problem. thnx for the fix!


Parsing command line beginning with comma

I found a possible issue with the new multi-line syntax for commands (#100).
A command starting with a comma like this:
- editor:
- vim
- ,n
causes the error, "Failed to parse config file. Please check your formatting."
Maybe it's YAML related.

I have some error, but quotes not working. Can you please help me
My voltron.yml
   # ~/.tmuxinator/voltron.yml

   name: voltron
   root: ~/

  windows:
    - editor:
        layout: 15a8,169x41,0,0{147x41,0,0[147x13,0,0{81x13,0,0,60,65x13,82,0,61},147x19,0,14,62,147x7,0,34{89x7,0,34,63,57x7,90,34,64}],21x41,148,0,65}
         panes:
           - voltron view disasm
           - voltron view bp
           - lldb
           - voltron view stack
           - voltron view bt
           - voltron view reg
    - server: bundle exec rails s
    - logs: tail -f log/development.log

I run  tmuxinator start voltron,but output I get is Failed to parse config file. Please check your formatting.

Check the syntax of your YAML file.  Just eyeballing what you posted (assuming that's verbatim), it looks like you have some leading spaces before name and root, and panes and it's children should be shifted left one space (panes should be indented 2 spaces underneath editor, left-aligning with layout.
YAML can be very picky about spacing.  You may want to try something like http://yaml-online-parser.appspot.com/ to make sure yours is correct.

Thank you)I changed voltron.yml. Maybe I wrong understand?(
Now I run tmuxinator start voltron and get error Your project file should include some windows.
 voltron.yml
   # ~/.tmuxinator/voltron.yml

   name:voltron
   root:~/

  windows:
    - madhax:
        layout: 15a8,169x41,0,0{147x41,0,0[147x13,0,0{81x13,0,0,60,65x13,82,0,61},147x19,0,14,62,147x7,0,34{89x7,0,34,63,57x7,90,34,64}],21x41,148,0,65}
               panes:
                  -voltron view disarm
                  -voltron view bp
                  -lldb
                  -voltron view stack
                  -voltron view bt
                  -voltron view reg
    - server: bundle exec rails s
    - logs: tail -f log/development.log

@dianapinkberry It looks like there are still some whitespace issues happening here. Specifically, the first three lines (of content) should be left-aligned; the lack of space between the key/value in name and root.
I was able to get it working by changing it to the following:
# ~/.tmuxinator/voltron.yml
name: voltron
root: ~/
windows:
  - madhax:
    layout: 15a8,169x41,0,0{147x41,0,0[147x13,0,0{81x13,0,0,60,65x13,82,0,61},147x19,0,14,62,147x7,0,34{89x7,0,34,63,57x7,90,34,64}],21x41,148,0,65}
    panes:
      - voltron view disarm
      - voltron view bp
      - lldb
      - voltron view stack
      - voltron view bt
      - voltron view reg
  - server: bundle exec rails s
  - logs: tail -f log/development.log

HTH! :]

Thanks,but that's what i have.
I change tmuxinator new voltron
http://upload.akusherstvo.ru/image1001782.png
Again((  Failed to parse config file. Please check your formatting.
http://upload.akusherstvo.ru/image1001784.png
Sorry for my bad English

@dianapinkberry It looks like there are still some whitespace issues - layout and panes should be indented to the same depth. Try downloading the file I linked to and see if that solves your problem.
Seeing that your problem isn't related to this issue (AFAICT), please follow-up on the Gitter channel if you need any additional help.

Yes,exactly,thank you very much. I forgot to remove the space before the panes. Now tmuxinator start voltron works,but somehow wrong. Maybe you know what is the problem?

/Library/Python/2.7/site-packages/blessed-1.14.1-py2.7.egg/blessed/terminal.py:211: UserWarning: Failed to setupterm(kind='\xc2\xabscreen-256color\xc2\xbb'): setup term: could not find terminfo database
Voltron loaded.


make query function db execute errors more helpful

combine the sql and input w/ the error message, to give more context on what went wrong

while working on this it became apparent that this exceeds the scope of this package.
catching db execute errors and making them more helpful should be a responsibility of the method passed in for execute.


run cargo update

one manual fix to pin clap to 4.3 as this requires rust v1.70

@baude @mheon @flouthoc PTAL, tests are green. I had to downgrade some deps that did not build on ubuntu.

/lgtm

/hold cancel


Add contributing.md

We should add a contributing.md file detailing how to get the project setup, how to run tests, & possibly explain how the tests work.
(moved from https://github.com/thefrontside/bigtest/issues/79)

This should also include making sure your change includes a changelog entry. The probot will block merging otherwise


[core] HighDPI not considered while using RenderTexture

This issue is directly related to #837.
When creating a RenderTexture on a HighDPI application:
// Create a RenderTexture2D to be used for render to texture
RenderTexture2D target = LoadRenderTexture(GetScreenWidth(), GetScreenHeight());

GetScreenWidth() and GetScreenHeight() actually return the original screen size requested by the user, despite that everything drawn is scaled to match HighDPI. So, we end up with a RenderTexture smaller than the actual render size.
One possible solution would be to consider the scaleFactor directly on GetScreenWidth() and GetScreenHeight() but if those calls are used in game logic for some maths it will lend to logic errors, because scaling is done automatically only on drawing.
Another solution would be directly exposing the HighDPI scaleFactor and let the user manage everything.
Feedback is welcome!

I love the idea of exposing the DPI to the user. I ran into this issue, and am working off a fork that exposes this info via
float GetWindowDPI(void).

I found it necessary for recreating the render texture when the window is moved to a new monitor with a different DPI or when the window is resized.

Just for reference, glfwGetMonitorContentScale() is the related function.

@raysan5 Im very interested in this feature. I agree with @jozanza . Exposing the dpi seems like a good solution. Im about to do this locally now.

Hmmm. I was going to try and do this, but I'm getting an error. Here is what I have done to try and expose the dpi.
core.c
Vector2 GetWindowDPI(void)
{

#if defined(PLATFORM_DESKTOP)
    float xdpi;
    float ydpi;
    glfwGetMonitorContentScale(CORE.Window.handle, &xdpi, &ydpi);
    return (Vector2){ xdpi, ydpi };
#endif
    return (Vector2){ 1.0f, 1.0f };
}

And here is the error I get when calling the function from my code.
WARNING: GLFW: Error: 65544 Description: Cocoa: Failed to find a screen for monitor

Any ideas?
@jozanza would you mind sharing your implementation in your fork?

Success! Sorry I figured it out. I was passing the window handle. The glfwGetMonitorContentScale() actually was expecting a monitor pointer.
Heres my final code which is working:
Vector2 GetWindowDPI(void)
{
#if defined(PLATFORM_DESKTOP)
    GLFWmonitor *monitor = glfwGetPrimaryMonitor();
    if (!monitor)
    {
        TRACELOG(LOG_WARNING, "GLFW: Failed to get primary monitor");
        return (Vector2){ 1.0f, 1.0f };
    }
    float xdpi;
    float ydpi;
    glfwGetMonitorContentScale(monitor, &xdpi, &ydpi);
    return (Vector2){ xdpi, ydpi };
#endif
    return (Vector2){ 1.0f, 1.0f };
}

I think it is better:
Vector2 GetWindowDPI(void)
{
    float xdpi = 1.0;
    float ydpi = 1.0;

#if defined(PLATFORM_DESKTOP)
    GLFWmonitor *monitor = glfwGetPrimaryMonitor();
    if (!monitor)
    {
        TRACELOG(LOG_WARNING, "GLFW: Failed to get primary monitor");
        return (Vector2){ xdpi, ydpi };
    }
    glfwGetMonitorContentScale(monitor, &xdpi, &ydpi);
#endif
     return (Vector2){ xdpi, ydpi };
}

@ismyhc @Miha-ha Added GetWindowScaleDPI() on commit https://github.com/raysan5/raylib/commit/8e59ecb50c0bbf2e46c7c6cf8deb09a3c31c42e7.
Still need to think about the issue a bit more... but this is a solution for now...

@raysan5 thanks for this! Ive been toying around with both Raylib and SDL2. What I'm trying to accomplish is actually handled in one line in SDL2.
SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h)
Im not sure how it would translate to Raylib, but below you can see description of the function which explains what Id like to do.

/**
 *  \brief Set device independent resolution for rendering
 *
 *  \param renderer The renderer for which resolution should be set.
 *  \param w      The width of the logical resolution
 *  \param h      The height of the logical resolution
 *
 *  This function uses the viewport and scaling functionality to allow a fixed logical
 *  resolution for rendering, regardless of the actual output resolution.  If the actual
 *  output resolution doesn't have the same aspect ratio the output rendering will be
 *  centered within the output display.
 *
 *  If the output display is a window, mouse events in the window will be filtered
 *  and scaled so they seem to arrive within the logical resolution.
 *
 *  \note If this function results in scaling or subpixel drawing by the
 *        rendering backend, it will be handled using the appropriate
 *        quality hints.
 *
 *  \sa SDL_RenderGetLogicalSize()
 *  \sa SDL_RenderSetScale()
 *  \sa SDL_RenderSetViewport()
 */
extern DECLSPEC int SDLCALL SDL_RenderSetLogicalSize(SDL_Renderer * renderer, int w, int h);

@ismyhc it seems similar to example core_window_letterbox

Hey @raysan5.
I had an issue that may be related.
First I turned off the following in libs/raylib/src/core.c:
//#define SUPPORT_HIGH_DPI // Force HighDPI support on macOS
With this removed, I get the following behaviour:

App loads and behaves normally

Resizing the app leads to the following:
a) Screen image is 1/2 size and positioned in the bottom left corner:

b) Buttons still work as though the screen is full size.
c) Moving the window sets everything back right again!
I fixed by messing with glfw:
In libs/raylib/src/external/glfw/src/cocoa_window.m
I modified windowDidResize(), adding the following two lines from the windowDidMove() function at the end of windowDidResize():
if (window->context.client != GLFW_NO_API)
    [window->context.nsgl.object update];

@TakUnderhand Thanks for reporting! I'm afraid behaviour could be dependant of macOS version as well as retina display... but, in any case, your solution points to GLFW library, maybe that issue could also be asked on their repo to make it available for all the users.
Also, note that current GLFW version used in raylib is about 4 month old, maybe something changed on GLFW side on that time.

Thanks :)
I took GLFW 3.3.2 from their repo, combined it into Raylib, just to see if that latest version would have any fix for this issue.  (It didn't).
If I get chance, I'll put a simple test case together, to raise an issue on the GLFW team.

@TakUnderhand Thank you very much for your time an effort! This issue has been open for some time, it would be great to find a proper fix! :)

Not sure how helpful this is, but I wrote a hack to allow me to drag a window between monitors that "mostly" works:
https://gist.github.com/mattj1/606a94527badb6ffa7d22245c9b745b1
(I'm on a Mac, btw)
Note: GLFW is required, and you have to specify your viewport size to rlViewport.

hi @mattj1! Thank you very much for the git! I'm reviewing it!

Not sure how helpful this is, but I wrote a hack to allow me to drag a window between monitors that "mostly" works:
https://gist.github.com/mattj1/606a94527badb6ffa7d22245c9b745b1
(I'm on a Mac, btw)
Note: GLFW is required, and you have to specify your viewport size to rlViewport.

Cheers, this helped me a lot. Thanks!

Not sure how helpful this is, but I wrote a hack to allow me to drag a window between monitors that "mostly" works:
https://gist.github.com/mattj1/606a94527badb6ffa7d22245c9b745b1
(I'm on a Mac, btw)
Note: GLFW is required, and you have to specify your viewport size to rlViewport.

Cheers, this helped me a lot. Thanks!

I love the idea of exposing the DPI to the user. I ran into this issue, and am working off a fork that exposes this info via
float GetWindowDPI(void).

I found it necessary for recreating the render texture when the window is moved to a new monitor with a different DPI or when the window is resized.

i use another approach, i send this flag directly, i will send code in my fork soon

I love the idea of exposing the DPI to the user. I ran into this issue, and am working off a fork that exposes this info via
float GetWindowDPI(void).

I found it necessary for recreating the render texture when the window is moved to a new monitor with a different DPI or when the window is resized.

i use another approach, i send this flag directly, i will send code in my fork soon

Hey @raysan5.
I had an issue that may be related.
First I turned off the following in libs/raylib/src/core.c:
//#define SUPPORT_HIGH_DPI // Force HighDPI support on macOS
With this removed, I get the following behaviour:

App loads and behaves normally
Resizing the app leads to the following:
a) Screen image is 1/2 size and positioned in the bottom left corner:

b) Buttons still work as though the screen is full size.
c) Moving the window sets everything back right again!
I fixed this issue by messing with glfw:
In libs/raylib/src/external/glfw/src/cocoa_window.m
I modified windowDidResize(), adding the following two lines from the windowDidMove() function at the end of windowDidResize():
if (window->context.client != GLFW_NO_API)
    [window->context.nsgl.object update];

this is because of call SetViewport with incorrect screen widths and heights, on HiDPI systems, render width is often not equals to screen width, so GetWindowScaleDPI willl return {2.0f, 2.0f} not {1.0f, 1.0f}

Hey @raysan5.
I had an issue that may be related.
First I turned off the following in libs/raylib/src/core.c:
//#define SUPPORT_HIGH_DPI // Force HighDPI support on macOS
With this removed, I get the following behaviour:

App loads and behaves normally
Resizing the app leads to the following:
a) Screen image is 1/2 size and positioned in the bottom left corner:

b) Buttons still work as though the screen is full size.
c) Moving the window sets everything back right again!
I fixed this issue by messing with glfw:
In libs/raylib/src/external/glfw/src/cocoa_window.m
I modified windowDidResize(), adding the following two lines from the windowDidMove() function at the end of windowDidResize():
if (window->context.client != GLFW_NO_API)
    [window->context.nsgl.object update];

this is because of call SetViewport with incorrect screen widths and heights, on HiDPI systems, render width is often not equals to screen width, so GetWindowScaleDPI willl return {2.0f, 2.0f} not {1.0f, 1.0f}

Hey @raysan5.
I had an issue that may be related.
First I turned off the following in libs/raylib/src/core.c:
//#define SUPPORT_HIGH_DPI // Force HighDPI support on macOS
With this removed, I get the following behaviour:

App loads and behaves normally
Resizing the app leads to the following:
a) Screen image is 1/2 size and positioned in the bottom left corner:

b) Buttons still work as though the screen is full size.
c) Moving the window sets everything back right again!
I fixed this issue by messing with glfw:
In libs/raylib/src/external/glfw/src/cocoa_window.m
I modified windowDidResize(), adding the following two lines from the windowDidMove() function at the end of windowDidResize():
```
if (window->context.client != GLFW_NO_API)
    [window->context.nsgl.object update];
```

this is because of call SetViewport with incorrect screen widths and heights, on HiDPI systems, render width is often not equals to screen width, so GetWindowScaleDPI willl return {2.0f, 2.0f} not {1.0f, 1.0f}

I am seeing something like this too, but on Linux on a hidpi screen

Finally I opt for the option of letting the user manage the RenderTexture scaling on HighDPI.


Edit mode breaks after nextjs server restart on vercel

After a new deployment NextJS generates a new token, but our requests still arrive with the token cached from the previous deployment. Instead of sending back an empty header signalling about invalid token, NextJS serves static page.

Alternatives:

Stop caching a token. This way we make sure we are always using current token.
Set up a deploy hook which will trigger cache update (invalidate old token -> fetch a new one -> cache it) on every new deployment.


Add refresh_token_expiration_policy to jwt_configuration

Adds support for refreshTokenExpirationPolicy as per API Docs
applications[x].jwtConfiguration.refreshTokenExpirationPolicy [String] AVAILABLE SINCE 1.17.0
The Refresh Token expiration policy.

The possible values are:

Fixed - the expiration is calculated from the time the token is issued.

SlidingWindow - the expiration is calculated from the last time the token was used.

SlidingWindowWithMaximumLifetime - the expiration is calculated from the last time the token was used, or until the maximumTimeToLiveInMinutes is reached.   AVAILABLE SINCE 1.46.0

Resolves #229

Thanks for the contribution @hamxabaig !
Are you missing the 3rd option added in version 1.46.0?

SlidingWindowWithMaximumLifetime
https://fusionauth.io/docs/v1/tech/apis/applications#request-body
see application.jwtConfiguration.refreshTokenExpirationPolicy

This can also be set on a tenant

https://fusionauth.io/docs/v1/tech/apis/tenants
see tenant.jwtConfiguration.refreshTokenExpirationPolicy

@robotdan thanks for the reply, I'll add update it

@robotdan can you let me know how you guys run tests, I tried #228 but its giving me lot of errors
       Error: Invalid multi-line string

          on terraform_plugin_test.tf line 803, in resource "fusionauth_tenant" "test_sipl4j6h9g":
         803: 		}
         804:     time_to_live_in_seconds               = 3600

        Quoted strings may not be split over multiple lines. To produce a multi-line
        string, either use the \n escape to represent a newline character or use the
        "heredoc" multi-line template syntax.

        Error: Invalid multi-line string

          on terraform_plugin_test.tf line 804, in resource "fusionauth_tenant" "test_sipl4j6h9g":
         804:     time_to_live_in_seconds               = 3600
         805:   }

        Quoted strings may not be split over multiple lines. To produce a multi-line
        string, either use the \n escape to represent a newline character or use the
        "heredoc" multi-line template syntax.

        Error: Invalid multi-line string

          on terraform_plugin_test.tf line 805, in resource "fusionauth_tenant" "test_sipl4j6h9g":
         805:   }
         806:   login_configuration {

        Quoted strings may not be split over multiple lines. To produce a multi-line
        string, either use the \n escape to represent a newline character or use the
        "heredoc" multi-line template syntax.

        Error: Invalid multi-line string

Anything?

@robotdan I'm also relying on this, can you give some update please ?

Hi guys, any updates on this? :)

@robotdan I'm not able to run tests as I mentioned above. Can you guide on that?

Unfortunately I won't have time to help with the tests.
However, once tests are passing, and all feedback is addressed I will be happy to merge.

Although slightly modified, this change is part of #275. I opted to use the property names that were already used on the tenant configuration.


Develop graphics that reflect committee goals adapting the branding

Acceptance criteria

[ ] I have a graphic that reflects committee goals.

Tasks

[ ] Brainstorm how the committee goads can be displayed via the effective use of graphics.
[ ] Develop a couple of graphics and discuss them with committee members.
[ ] Finalize the graphics incorporating feedback.

@nikeshbalami  Could you clarify where those graphics can be used?  Do you mean the image on the homepage banner? (women with bar chart)

Yes, this issue is for the graphics which will be in the homepage banner.


feat(langchain): Add trace context to client requests

This PR addresses part of issue #1983 by wrapping the _generate(), _agenerate(), _stream(), and _astream() methods in the OpenAI classes to propagate the trace context through the request's HTTP headers.
However, the current implementation does not fully support streaming for ChatModels. The logic there differs slightly, and I was unable to access the run_id within BaseChatOpenAI._stream(). The run_id is essential for matching the correct span, and in other methods, I retrieve it via the run_manager. While BaseChatOpenAI._stream() accepts a run_manager parameter, it is not being passed in this case.
For reference:

BaseChatOpenAI._stream() signature
Related section in chat_models.py

The code that wraps the streaming methods _stream() and _astream() of the ChatModels is currently commented out, and the relevant tests are marked with xfail() to indicate their expected failure.

[x] I have added tests that cover my changes.
[ ] If adding a new instrumentation or changing an existing one, I've added screenshots from some observability platform showing the change.
[ ] PR name follows conventional commits format: feat(instrumentation): ... or fix(instrumentation): ....
[ ] (If applicable) I have updated the documentation accordingly.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


pt-PT is not Brazil's language correct ISO code

On your readme and docs, you got pt-PT as for Brazil's language. In fact, pt-PT code stands for Portuguese from Portugal, and pt-BR code stands for Portuguese from Brazil.
Portuguese is the native language of:

PORTUGAL - pt-PT
ANGOLA - pt-AO
BRAZIL - pt-BR
MOZAMBIQU - pt-MZ
GUINEA-BISSAU - don't know
CAPE VERDE - don't know
SÃO TOMÉ E PRÍNCIPE - pt-ST

Hey,
according to the BCP-47 nomenclature you're right, but i though it was theoretically the same as the situation with Spanish from Spain and Latin America ... it seems i was wrong (the following video explains the situation of the language in case it's of interest for someone):

Currently as Artyom works with Speech Recognition and Speech Synthesis together (that's the main point of artyom, otherwise you can use Annyang for voice command) I set Portuguese from Portugal with the same language identifier (pt-BR) because there's no Voice in Google Chrome for pt-PT (Portuguese from Portugal), but only Portuguese from Brazil.
In Artyom. the voice recognition uses the pt-BR and the speech synthesis too, which means that if you need to recognize Portuguese with pt-PT, then you'll need to modify the source code artyom or use the plain API.
In short words, Portuguese from Portugal isn't supported, only Portuguese from Brazil and therefore the code in the documentation should be changed. Thanks for pointing this out, we'll fix the typo in the next commit!

They (pt-PT and pt-BR) are both supported by Google Speech and Voice APIs.
I think Voice API is the one who still has troubles on choosing the correct one, but on the Speech API, they really matter. I've played a little bit with kalliope and pt-BR doesn't work so well as pt-PT when speaking with a Portuguese accent, so it kind of matters.


Evelation Raster .gdb

.gbd Raster can only be read by ArcGis, no other application can read them or convert them, is it possible to have the raster in a compatible format with R?

Sorry about that! I'll email the dem to you.

too large for email so just added the zipped tif to our shared dropbox folder

terra::rast


AutoMigrate does not support pointers

I'm in the position of using a legacy database/but also to migrate, and want a way to use null's
So I have the following struct to support the nulls
type JobView struct {
        Job
	AccountId int ` json:"account_id" `

        // these are data types, but automigrate cant detect type
	OrderOrdered *time.Time ` json:"order_ordered" `
	OrderRequired *time.Time ` json:"order_required" `

        // this could be null as a join not exist
	JobItemsCount *int ` json:"job_items_count"   `
}

This works well, apart from AutoMigrate which cant work out the "type" of a pointer..
Is there a way around this ??

Hi @pedromorgan
Just fixed this, thank you for your report.


AttributeError: module 'tensorflow.contrib.seq2seq' has no attribute 'TrainingHelper'

In project 4 , in Decoding - Training section , it's written
Create a training decoding layer:
Create a tf.contrib.seq2seq.TrainingHelper
Create a tf.contrib.seq2seq.BasicDecoder
Obtain the decoder outputs from tf.contrib.seq2seq.dynamic_decode
but it is giving error  module 'tensorflow.contrib.seq2seq' has no attribute 'TrainingHelper'
what should I do ?

Try updating your TensorFlow version to 1.2

Thanks


[bug][Atom 1.11.2][Linux] Atom scrolls even when not focused

Prerequisites

[x] Can you reproduce the problem in safe mode?
[x] Are you running the latest version of Atom?
[x] Did you check the debugging guide?
[x] Did you check the FAQs on Discuss?
[x]  Are you reporting to the correct repository? (hopefully)
[x] Did you perform a cursory search to see if your bug or enhancement is already reported?

Description
Atom does not seem to lose scrolling focus upon Alt+Tab to another application and then switching back to Atom.
Steps to Reproduce

Be in Atom and check which line you're on
Alt+Tab to another application
Scroll up a few times
Alt+Tab back to Atom
Scroll down once

Expected behavior:
The file view scrolls down.
Actual behavior:
The current file view jumps up depending on how many scrolls you did.
Versions
Not sure, been there for quite some time but I was not sure how to reproduce it successfully.
OS and version
Fedora 24, Linux 4.7.9-200.fc24.x86_64 GNU/Linux, Gnome 3.20.4

This sounds like a duplicate of https://github.com/atom/atom/issues/12591 which has been fixed in Atom 1.12.

Ah, sorry, there's so many issues it's hard to find anything there.


Support enabling asserts in profile builds.

This is a request from customer: castaway, to allow QA builds to have clearer stack traces and error messages. They use debug builds on Android for this, but since debug builds can only be launched from XCode on iOS they'd need to use profile builds.
I tried the following to enable assertsions:
flutter run --profile --extra-gen-snapshot-options=--enable-asserts
However that crashes at start up with an engine configuration issue. Is there a way we can build the engine in an assert agnostic manner?
(lldb) 2024-03-25 15:42:53.668461-0700 Runner[6110:863224] [FATAL:flutter/runtime/dart_vm_initializer.cc(89)] Error while initializing the Dart VM: Snapshot not compatible with the current VM configuration: the snapshot requires 'release no-code_comments no-dwarf_stack_traces_mode no-lazy_dispatchers no-dedup_instructions no-tsan asserts arm64 ios no-compressed-pointers null-safety' but the VM has 'release no-code_comments no-dwarf_stack_traces_mode no-lazy_dispatchers no-dedup_instructions no-tsan no-asserts arm64 ios no-compressed-pointers null-safety'
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x00000001ca9b5578 libsystem_kernel.dylib`__pthread_kill + 8

Passing --enable-asserts to gen_snapshot is not enough. Flutter tools and flutter engine need to pass this option consistently to

frontend_server
gen_snapshot
Dart VM options at runtime

Also, we should probably support it in the standalone Dart SDK first (https://github.com/dart-lang/sdk/issues/53343) and add AOT bot with enabled assertions to Dart CI in order to verify that this mode works before landing its support in Flutter.

So we don't need to build a new engine variant, that is good! We already have support for passing arbitrary arguments to frontend_server/gensnapshot, and I believe applications can add allowlisted dart flags to the vm at runtime.
But if this hasn't been tried by dart before, then it would be good to confirm this will actually work first 😄

dart aot that is used in profile build actually supports --enable-asserts flag(tested in https://dart-current-results.web.app/#/filter=language/assert/assert_test&showAll), so this can be passed by flutter to dart gen_snapshot and aot runtime) right now.
There are known limitations https://github.com/dart-lang/sdk/issues/34110 that make assert message and location in aot not usable - we will work on improving that. The stack trace on the raised exception though will point to the source code location where assertion failed.

https://github.com/dart-lang/sdk/issues/53343 has been closed as well so passing --enable-asserts to frontend and gen_snapshot should work.
However, attempt to compile flutter app in profile mode with --enable-asserts breaks on flutter framework code
file://p/f/f1/flutter/packages/flutter/lib/src/widgets/app.dart:60388
Constant evaluation error: Constant evaluation error:
 org-dartlang-sdk:///flutter/third_party/dart/sdk/lib/io/platform_impl.dart:2770 Constant evaluation
error: The invocation of '_environmentCache' is not allowed in a constant expression.
 Unhandled exception:
file://p/f/f1/flutter/packages/flutter/lib/src/foundation/platform.dart:2469 Error for
annotated member defaultTargetPlatform: cannot evaluate to a constant

The culprit seems to be the use of @pragma('vm:platform-const-if'  in
https://github.com/flutter/flutter/blob/35c0ad1a79184c0bbce55a0596faddc71b7999ea/packages/flutter/lib/src/foundation/platform.dart#L47 and https://github.com/flutter/flutter/blob/35c0ad1a79184c0bbce55a0596faddc71b7999ea/packages/flutter/lib/src/foundation/_platform_io.dart#L13 (commenting use of those pragmas fixes the build and make sample app with assert throw expected AssertionError exceptions)

Thank you @aam . I'll see if I can adjust the pragma a bit. I suspect with asserts enabled we're in an unexpected set of configurations and will need to adjust some other flags.

https://github.com/flutter/flutter/blob/35c0ad1a79184c0bbce55a0596faddc71b7999ea/packages/flutter/lib/src/foundation/_platform_io.dart#L30 is better culprit - getting rid of that assert(which uses Platform.enivronment) fixes the issue as well

There is some pending dart work with respect to the assert message, this is being tracked in https://github.com/dart-lang/sdk/issues/34110

This now almost works on ToT. Invocation:
 flutter run --profile --extra-gen-snapshot-options=--enable-asserts --extra-front-end-options=--enable-asserts --dart-flags=--enable-asserts
Shipping this requires pssing the --dart-flags=--enable-asserts at runtime IIRC

Actually a few more args:
flutter run --profile --extra-gen-snapshot-options=--enable-asserts --extra-front-end-options=--enable-asserts --dart-flags=--enable-asserts --dart-define=dart.vm.profile=false --dart-define=dart.vm.product=false

This should work as of 5bc3de9d75

@a-siva I'm getting asserts messages at ToT. What is missing?
void main() {
  assert(false, "Hit an assert!");
}

Gives me
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: 'package:hello_world/main.dart': Failed assertion: line -1: '<optimized out>': Hit an assert!
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:45)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40)
#2      main (package:hello_world/main.dart:10)
#3      _runMain.<anonymous closure> (dart:ui/hooks.dart:301)
#4      _delayEntrypointInvocation.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:297)
#5      _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184)
Installing and launching...                                         4.1s

@a-siva I'm getting asserts messages at ToT. What is missing?

The line number says -1: '' if you ran the debug version it will have the line number.

I'm getting asserts messages at ToT. What is missing?

Reported exception should be Unhandled exception: '...a.dart': Failed assertion: line 2 pos 10: 'false': Hit an assert!

This should work on ToT.
Add the following line to the application Info.plist:
<key>FLTEnableDartAsserts</key>
<true/>

and then build/run with the following arguments:
flutter run --profile --extra-gen-snapshot-options=--enable-asserts --extra-front-end-options=--enable-asserts --dart-flags=--enable-asserts --dart-define=dart.vm.profile=false --dart-define=dart.vm.product=false

Correct!

unassigning as I think all my work is done here.

You need to be on a flutter version after https://github.com/flutter/flutter/commit/817630ccf18b014b7a556c7dca28489315503c5b has landed


Array of objects shape inference breaks working code when array length is equal to 1

Bicep version
0.22.6
Describe the bug
I have a var that is an array of non-homogeneous objects. Each object contains:

one or more required properties
zero or more optional properties

I use the array in a for-loop to create instances of a module. I use the contains(...) function in ternary expressions to see if an object has a given optional property or not. An example of this:
contains(item, 'optionalProperty') ? item.optionalProperty : null

When the length of the array of objects is equal to 1 then Bicep can infer the shape of the objects in the array.
When the length of the array of objects is greater than 1 then Bicep can no longer infer the shape of the objects in the array.

In (1) above Bicep reports an error when trying to construct a ternary expression that checks for optional properties: The type "object" does not contain property "optionalProperty". Available properties include "requiredProperty".bicep(BCP053)
In (2) above it works, you can safely check for the optional property.
To Reproduce
Steps to reproduce the behavior:
Create a dummy module.bicep with the following content:
param requiredProperty string
param optionalProperty string?

Create a main.bicep, use the two sample contents below to view the two different cases:

The following code snippet works, because the length of the items array is greater than one:

var items = [
  {
    requiredProperty: 'required value 1'
    optionalProperty: 'optional value'
  }
  {
    requiredProperty: 'required value 2'
  }
]

module myModule 'module.bicep' = [for item in items: {
  name: 'MODULE-${guid(item.requiredProperty)}'
  params: {
    requiredProperty: item.requiredProperty
    optionalProperty: contains(item, 'optionalProperty') ? item.optionalProperty : null
  }
}]

The following code does not work, because the length of the array is one, and Bicep can infer the shape of the object in the array:
var items = [
  {
    requiredProperty: 'required value 1'
  }
]

module myModule 'module.bicep' = [for item in items: {
  name: 'MODULE-${guid(item.requiredProperty)}'
  params: {
    requiredProperty: item.requiredProperty
    optionalProperty: contains(item, 'optionalProperty') ? item.optionalProperty : null
  }
}]

Additional context
Add any other context about the problem here.

@jeskew - if we had the ability to define types for vars, would that be a way of addressing this? If this is a valid use of contains() should we mark it as a bug? I was also wondering how this should work with the ?? operator:
optionalProperty: item.optionalProperty ?? null

@alex-frankel Yes, declared types on vars would be a good way to address this. There is another open issue to make the type checker more context-aware so that within the expression between the ? and the : in contains(item, 'optionalProperty') ? item.optionalProperty : null, the type checker would know that there is a property named optionalProperty on item.
As a workaround, instead of contains, a safe property access could be used:
optionalProperty: item.?optionalProperty

Related: #9364 & #12121

@jeskew I was not aware of that workaround, thank you for the suggestion!
Types for variables would be a great addition 👍🏻


WIP Test Do Not Merge

Test Secret

Closed as the PR successfully demonstrated issues with logging into quay for kepler image


Test DCP-CLI with Python 3.7

User Story
As a DSS CLI user that keeps my system up to date with the latest Python version, I want the DSS CLI to work with Python 3.7
Note: I have not tried running the DCP CLI using Python 3.7, it may or may not work properly.
I'll estimate the story points at 2 for setting-up GitLab dcp-cli CI to include Python 3.7, and if significant issues are found, additional tickets can be opened to resolve them.
Done When
The DCP CLI is tested with Python 3.7 as part of standard CI, and all tests pass successfully.

@hannes-ucsc interested in hearing an update on this.


support ability for custom effects

Q
A

Fixed Issues?
Fixes #1238

Patch: Bug Fix?

Major: Breaking Change?

Minor: New Feature?
Yes

Tests Added + Pass?
Yes

Any Dependency Changes?

The purpose of this PR is to support custom effects.  It employs a similar approach to this PR https://github.com/redux-saga/redux-saga/pull/1524
We allow the end-user to provide the customEffects key to the middleware options which allows users to yield to effects that they define.  This opens up possibilities for community effects as well as effects we could package in separate libraries (e.g. if we don't want fetcher inside our core package for this PR https://github.com/redux-saga/redux-saga/pull/2307).
import createSagaMiddleware, { makeEffect, resolvePromise } from 'redux-saga';

function runFetchEffect(env, { url, request }, cb) {
  const controller = new AbortController()
  const signal = controller.signal
  const result = fetch(url, { signal, ...request })
  // this is critical to provide
  cb.cancel = () => controller.abort()
  resolvePromise(result, cb)
}

const FETCH_FX = 'FETCH';
const fetcher = (url, request) => makeEffect(FETCH_FX, { url, request });

const sagaMdw = createSagaMiddleware({
  customEffects: {
    [FETCH_FX]: runFetchEffect,
  },
})

sagaMdw.run(function* example() {
  const resp = yield fetcher('https://api.com');
  const data = yield call([resp, 'json']);
  console.log(data);
})

IIRC this is already implementable using something like this:
import { CANCEL } from '@redux-saga/symbols'

const fetch = (url) => call(function () {
    const controller = new AbortController();
    const signal = controller.signal;
    const promise = globalThis.fetch(url, { signal });
    promise[CANCEL] = () => controller.abort();
    return promise
});

So I wonder how useful it would be to add support for custom effects if almost anything can already be composed using the provided primitives.

The idea was to assist in building a new library saga-toolkit to preserve redux-saga.  If I can build custom effects in that library and it functions like the effects defined inside this library, then that works for me.

The idea was to assist in building a new library saga-toolkit to preserve redux-saga. If I can build custom effects in that library and it functions like the effects defined inside this library, then that works for me.

I think that it should be doable to build such a library based on the existing pieces - if not then we can revive this PR later, based on the found shortcomings.


Latest Travis build did not run all tests

I have no experience with Travis, so maybe the problem is in my side, but I am figthing with this issue for a while as mentioned here, and now it seems to me Travis does not run all tests.
Update: Maybe this issue is the reason: DockYard/ember-suave#94, kellyselden/broccoli-jscs#53.
Reproducing:
git clone git@github.com:samselikoff/ember-cli-mirage.git
cd ember-cli-mirage
npm cache clean
bower cache clean
npm i
bower i
npm test

<EMAIL_ADDRESS>test /home/ror/ember/ember-cli-mirage
ember try:testall && mocha tests/**/*-test-node.js

Cannot find module 'lodash/lang/isFunction'
Error: Cannot find module 'lodash/lang/isFunction'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object. (/home/ror/ember/ember-cli-mirage/node_modules/babel-core/lib/api/node.js:21:29)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
npm ERR! Test failed.  See above for more details.

rm -rf node_modules/babel-core
npm i
npm test
test runs with the result:

1..1073
tests 1073
pass  1070
skip  0
fail  3

Meanwhile the latest travis job 1052.1:

1..1009
tests 1009
pass  1009
skip  0
fail  0

Try rebasing off master

Done.


tsc --build takes wrong assumption on project rootDir

TypeScript Version:  4.2.0-dev.2020120

Search Terms: tsc, project reference, inconsistent rootdir, builds again
Code
https://github.com/sguillia/ts-bug-repro-II
// No code, an empty TS file is enough to reproduce.

tsc --build --verbose
tsc --build --verbose

Expected behavior:
Project was built once.
Actual behavior:
Project was built twice.
Playground Link:
No playground link. Typescript Playground does not offer the outDir option.
Related Issues:  not found, sorry
Additional information
Second build logs this message:
[14:36:00] Project 'tsconfig.json' is out of date because output file 'dist/src/index.js' does not exist

dist/src/index.js is not supposed to exist. dist/index.js does.
Setting the following setting in the tsconfig.json fixes the problem:
"rootDir": "./src"

But the actual behavior should be consistent even without the rootDir setting
As explained here in the docs, tsc --build is supposed to consistently detect whether the project is up-to-date.

This is the same behavior I reported into https://github.com/microsoft/TypeScript/issues/41780. In that bug, getOutputFileNames was being called directly by the Rollup Plugin and returning dist/src/index.js instead of dist/index.js. I wonder if tsc follows a different code path that also uses the broken implementation of getOutputFileNames when the --build option is used

Duplicate of #41780

Why this is still happening after almost one year? This wasted me entire afternoon :(


AIY USB Gadget deletes ETH0

System: 2018-11-16 AIY image on mid 2018 Raspberry Pi Zero W with a SMAYS Ethernet USB Ethernet adapter directly plugged directly into unit.
Upon boot, DHCP server shows both ETH0 and WLAN0 requested IPv4 addresses, but ETH0 cannot be used by SSH or other services.  Inspection via ifconfig shows only devices LO and USB -- no ETH0.   ETH0 has been deleted, with no log messages in syslog, daemon.log or dmesg reporting why.
** Workaround **
Disabling the AIY Gadget service and rebooting machine caused ETH0 to reappear.
expected behavior

Use of ETH0 is honored when such as device is attached without disabling services.  That is, the AIY gadget service must not hijack the USB port and/or disable Ethernet or other useful devices which are directly attached.
The AIY gadget reports all actions it takes to the system log.  For example, it must not take actions against the USB port without logging.

Also:
The default setup with  USSB/dnsmasq screws up DNS setup via DHCP, in particular it makes the DNS lookups ignore the DHCP assigned name servers and whatever local information they contain.
The dnsmasq daemon should be not activated if USB is not used for networking and ETH0 is.

@swhobbit I'll try to reproduce that. We don't do anything specific to remove eth0.


Add Inlang to enable community translations / make the contribution of translations easier

Hej @Andrew-Chen-Wang, @samuelstroschein  mentioned that you are informed about this pull request. If there are any problems with the PO plugin, hit me up.
Try it if you want-> djangorestframework X inlang editor
Description
This pull request adds the possibility for contributors and translators to manage translations in a UI instead of files with no overhead for the maintainers.
To get a UI for translations contained in this repository, an inlang.config.js has been created at the root of the repository. The support for placing the config file in /packages/web is not yet supported, see https://github.com/orgs/inlang/discussions/258. Furthermore, the translation files have been cleaned by either fixing the usage of keys or removing unused translations entirely. Each commit in this PR has a detailed description except for the last one where I added a missing translation with the editor.
Preview
The changes of this PR and a live instance of the editor can be previewed with the following link https://inlang.com/editor/github.com/samuelstroschein/osmosis-frontend. Note: This link should be changed to point to osmosis instead of samuelstroschein after this PR has been merged.
Limitations

Certain actions are slow
Inlang is running entirely on git, giving tremendous CI/CD and contribution power to localization (and potentially other verticals -> the next git). That means that the whole osmosis-frontend repo is cloned into the browser which makes certain actions like the initial load and pushing changes slow. Those limitations will be fixed with future releases and require no input from Osmosis.

Linting is not available yet
Neither the editor nor developers will receive linting and validation tools for translations with this PR (yet). Some commits that I have done removed unused translations. In the future, spotting errors like unused translations could be achieved with the planned inlang CLI via CI/CD, see https://github.com/orgs/inlang/discussions/273. In the meantime, manually spotting and fixing errors in translations is required :(

there's seems me a space right after LC_MESSAGES.

there's seems me a space right after LC_MESSAGES.

You are right. Thank you.
I removed the whitespace. Let me know if there are more mistakes :)

can you fill in the english strings please. Please use inlang and open a separate PR (will merge once I see a valid PR of the en lang file filled in). Before you do, please delete the en file here and test to see whether a new language is created. Thanks!
Also for inlang, I think it would benefit if you could put the url in the readme near the bottom under a sub header labeled translations.
direct users to either 1) contribute directly or 2) use inlang

@jannesblobel is the en file auto-generated via CI/CD, or manually? If manually, how will the file keep in sync with the messages used in the source code?

Hi @Andrew-Chen-Wang
I changed:

delete the en files
add a call to  "contribute to the translation" to the readme

The PR is ready to merge.

Unfortunately, this was the first time  I had worked with rst files before, and I needed to find out the underline length of a headline. Typical Copy/Paste mistake and Github rendered my rst Readme. That's why I thought the readme worked
I tried to test the file before I committed it, but I didn't find a linter for rst files that work on my computer.

No worries. We use a Python package called pre-commit where you install it andd run pre-commit install so it'll automatically lint for you. Thanks for the PR!

🥳


Update build.gradle files to replace 'compile' by end of 2018

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.
It will be removed at the end of 2018. For more information see: http://d.android.com/r/tools/update-dependency-configurations.html

Addressed with https://github.com/Esri/mapbook-android/pull/31


Implicit function scope

This is slightly related to #953 - the difference is I would like some code to not be visible at all. I am aware of addExtraLib and use that to inject some custom global functions and classes for IntelliSense purposes.
The use case I have is that I want a user to write a function's body only (the function declaration is not part of the model). This works fine until, for instance, the user writes something like:
let varName = 0;

If varName is already declared somewhere with the addExtraLib call, this will give a "Cannot redeclare block-scoped variable 'varName'.(2451)" error. (This won't be the case during the actual execution, but there's no way to tell monaco that!)
I would like the code to be validated as though it is in its own function scope, as is the case within a function, so this error is no longer reported.

Duplicate of https://github.com/microsoft/monaco-editor/issues/1661

At least for the return statement, you can use the code sample mentioned in https://github.com/microsoft/monaco-typescript/pull/46 to ignore that specific diagnostic.

@alexdima I get this issue was closed, but I think #1661 is too broad of a fix and not really a duplicate of this. I was thinking more of something like a DiagnosticsOptions flag like implicitFunctionScope: true. I should have been more clear in my first post.
@spahnke Thanks. The same principle could be used to disable 2451 as well.

If varName is already declared somewhere with the addExtraLib call, this will give a "Cannot redeclare block-scoped variable 'varName'.(2451)" error.

You can work around that pretty easily by only including necessary types in your extra lib instead of the actual code you wrap the user's code in. Consider the following function with parameters and a predefined global object foo with one method bar() that returns a number:
function implicitFunction(a: number, b: number) {
    // user code goes here
    return a + b + foo.bar();
}

Then you want your users to just write
return a + b + foo.bar();

into the editor and get completion for everything, as far as I understand. The return statements normally gives you an error which you can suppress by the method mentioned earlier. So you only need to supply a, b and foo in your extra lib and can use a .d.ts file for that:
interface Foo {
    bar(): number;
}

// global object
declare const foo: Foo;

// parameters - declare as var if you want the user to be able to change these, otherwise use const
declare var a: number;
declare var b: number;

This is how we use the editor for this exact use case. Provide the necessary types by a .d.ts file in the extra lib and suppress the error for the return statement. Since you only provide the necessary types there is no chance of name clashes and you probably don't want the user to be able to overwrite the global objects anyway. This is why you declare the global object as const so the user gets an error if they overwrite/redeclare it, and use var for parameters if you want the user to be able to overwrite those.
Does this help you?
Full playground example adopted from https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-configure-javascript-defaults:
// validation settings
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
    noSemanticValidation: false,
    noSyntaxValidation: false,
    noSuggestionDiagnostics: false,
    diagnosticCodesToIgnore: [1108],
});

// compiler options
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
    target: monaco.languages.typescript.ScriptTarget.ES6,
    allowNonTsExtensions: true
});

// extra libraries
const libSource = `
interface Foo {
    bar(): number;
}

// global object
declare const foo: Foo;

// parameters
declare var a: number;
declare var b: number;
`
const libUri = 'ts:filename/facts.d.ts';
monaco.languages.typescript.javascriptDefaults.addExtraLib(libSource, libUri);
// When resolving definitions and references, the editor will try to use created models.
// Creating a model for the library allows "peek definition/references" commands to work with the library.
monaco.editor.createModel(libSource, 'typescript', monaco.Uri.parse(libUri));

const jsCode = `return a + b + foo.bar();`

monaco.editor.create(document.getElementById('container'), {
    value: jsCode,
    language: 'javascript'
});

Thank you for your reply.
Sadly, it does not address the original problem, though. If you type let foo = 3; in the right-hand panel it will still give the 2451 error on 'foo'.
Surpressing the 2451 error in addition to 1108 seems like the only viable workaround for now:
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
    noSemanticValidation: false,
    noSyntaxValidation: false,
    noSuggestionDiagnostics: false,
    diagnosticCodesToIgnore: [1108, 2451],
});

Of course I can only speak for our application, but if we declare a global variable we would never ever want the user to be able to overwrite those; even in a function scope. Because that only leads to subtle bugs I don't want to hunt down 😄 So the questions that you need to answer for yourself are: If the global variable is essential and should be used inside the function, do you really want the user to overwrite that; even temporarily? And, if it's not used by your users inside your function, do you need to declare it in the first place? If you really want to have both, then you're right TypeScript is a bit too strict for your needs. And even an option like implicitFunctionScope would not solve this problem because foo still would be declared globally. The only thing that would work other than suppressing the error, is declaring foo as var on your end and have the user also have it declare as var.
But also consider that you probably will need to debug the following code for a user at some point in the future if you just suppress the error or use var, because they file the issue that the method bar is not working.
// ... 20 lines of code
var foo = "asdf"; // sneaky redeclaration
// ... another 50 lines of code
return foo.bar(); // this will not work now

Or even worse they write the code
let test = 1;
// ... other code
let test = 2;

and now the editor says everything is fine, but the script crashes at runtime because now they're actually redeclaring block scoped variables which is not allowed.
I myself would always go for the stricter error checking, or just don't declare foo if it's not necessary. But again, this boils down to your needs. Good luck!

You're right that it sounds a bit strange.
To explain my use case a bit more, users of our application can create all kinds of identifiers through a web UI that translate in code to classes/constants/functions.
A user had one of those classes named result and would later add a function with a let result = 0; statement in its body (as one does). Of course, this is perfectly valid if the code was in an actual function, you can just redeclare variables if you want. But as the extraLib and the user code resides in the same block-scope, this would hint to the user that they couldn't use result. The code executes fine when tested, so there was a discrepancy.
You could say that they shouldn't use the name 'result' as a class, but it's how they happened to compose their model. 🤷♂
Anyway, thanks again for the tips!


Change Magic Patterns logo on README file

It is hard to read (not enough contrast) on dark mode.

hey can you tell me the position where should  i placed this logo in the readme file? I want to work on this issue.


Remove default plural text when the device count is 1

When the device count is 1 on the Push Notifications page, I should see "1 device" instead of "1 devices".

@adrianknight89 thanks for pointing that out, I'll get this fixed.

Looks like this issue didn't get cleaned up after it was fixed on July 9th. It is now safe to say that this issue is dealt with.


[Feature] Finish FavoriteRoute

This is a candidate for being pushed back to 1.2.

[x] Allow a favorite route to pinned to the Start Screen
[x] Allow a favorite route to be pinned to the Main Page
[x] Make tapping a favorite route on the Favorites page instantly try to plan a trip with that route.
[ ] Make its appearance on the Favorites page a little less ugly--a partially-transparent blue, maybe?

This is finished-ish. I'd like to come back to this later because the following problem still exists:

When we save a Favorite Route, we save the entire route so we can display it back on the Favorites Page's map later. However, this is misleading--we really only use the start and endpoints. Need to come up with a better way to show that, visually. Maybe just a straight, as-the-crow-flies dashed line?

Either way, pushing that to 1.1.


Configuration

I'm planning on running this for prod, how do I configure it? (i.e. different port, etc)

Added description of .env to README at 063ce36617b259a3cf7cdd70a5a083ee6ae9264f.
In case you are interested, here is a note on how to write .env in prod.
Create .env.production or .env.production.local and write the following
CK=[your consumer key for twitter API]
CS=[your consumer secret for twitter API]
TW_OAUTH_CALLBACK=[your server's URL]/twitter_callback # e.g. https://hogehoge.com/twitter_callback
MK_CALLBACK=[your server's URL]/misskey_callback # e.g. https://hogehoge.com/misskey_callback


Initialize setupTasks property in config object

Currently when running sf org configure no tasks are executed because the setupTasks property is never set on the config object.
This PR initializes that property so that this commands actually does something.

@RobinWeymans thanks for the hint. The issue is fixed. As sfdx-jayree.json config is now deprecated. Please find here the new format for sfdx-project.json.


disable ddflare ocb integration test

What does this PR do?
disables DDFlare OCB test until go.work is implemented
Motivation
https://github.com/DataDog/datadog-agent/pull/31595 failed due to modules not being published yet
Describe how you validated your changes
disabled test, none needed

Possible Drawbacks / Trade-offs
need to re-enable test once go.work is enabled to see if it works
https://datadoghq.atlassian.net/browse/OTEL-2287
Additional Notes

converted to draft since go.work is now committed


Add StreamMessage.of(inputStream)

Related Issue #3937
Motivation:
static StreamMessage<HttpData> of(InputStream inputStream) {...}

It would be nice if we provide a way to convert an InputStream to a StreamMessage that splits the binary by the bufferSize.

Modifications:

Add StreamMessage.of(inputStream)
Add InputStreamStreamMessage and builder

Result:

You can now use StreamMessage.of(inputStream) to convert an InputStream to StreamMessaeg<HttpData> that splits the binary by the bufferSize
Close https://github.com/line/armeria/issues/3937 issue

// TODO(ikhoon): Add StreamMessage.of(InputStream)
Why don't you send a PR to https://github.com/softwaremill/tapir in which I left a TODO for this issue when a new version is released? 😉

oh~ after this PR is merged and release with new version, I'll also send PR to tapir to remove TODO~!


⚠ WSINGRESOS - GENERICO has degraded performance

In bcf4ba5, WSINGRESOS - GENERICO (https://srvshyweb.yucatan.gob.mx/cgi-bin/wspd_cgi.sh/WService=wsingresos/internet/servicios/wsGenericoPagosWeb.r) experienced degraded performance:

HTTP code: 200
Response time: 2035 ms

Resolved: WSINGRESOS - GENERICO performance has improved in 7e0633b.


Protocols & Composability in Blockchain

Title
Protocols & Composability
Target Audience
Open for all
Duration
30 Min Regular Talk
Description

How perpetual protocols work as long living applications.
How communities of a protocol can keep it up and running even if the team decides to ditch it.
How the entire ecosystem of one chain is composable, i.e built from small protocols open for use to anyone.
How web3 instills collaboration over competition.

About Speaker
I am Daksh, 18 y/o hacker & builder, currently building Metapass on Polygon & Solana.

Hello, @dawksh  Congratulations on getting shortlisted for a talk at Web3Conf India. Please share your email so that we can take it further.


Destroy/Delete active/valid token

I was wondering if there was a way to destroy/delete/deactivate/whatever a JWT thats been validated and currently in use.
Im moving my application over from CodeIgniter, which allows you to keep the sessions in a database, which makes it easy to terminate account sessions if needed. I was trying to get the same effect here, by destroying the users JWT token

The custom validateFunc is where you would want to put this logic. When you generate the jwt token, include a bit of data such as 'sessionIdand in thevalidateFunc` query your database to see if this session is still valid.

I don't know is there any way of deactivate a jwt token when user loggedout
since 2 months I did not get any possible way of doing it.
Can anyone help me ?


add amount to 0 sat invoices; clean up test

closes #172

Funny that everything works without those acts now. Weird but great!

The acts were unnecessary since user-event doesn't need them.
The issue with the test was in the ln-invoice with amount above zero > valid form passes test. There was a state change and not awaited with a findByRole but just with a getByRole.
With that change, the test passed. :)

The issue with the test was in the ln-invoice with amount above zero > valid form passes test. There was a state change and not awaited with a findByRole but just with a getByRole.

Good catch, awesome!


[Snyk] Fix for 2 vulnerabilities

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

packages/node/base/package.json
packages/node/base/package-lock.json

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Breaking Change
Exploit Maturity

696/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 7.5
Regular Expression Denial of Service (ReDoS) SNYK-JS-SEMVER-3247795
No
Proof of Concept

763/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 7.4
Path Traversal SNYK-JS-WEBPACKDEVMIDDLEWARE-6476555
Yes
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.

Commit messages

Package name: @angular-devkit/build-angular
    The new version differs by 250 commits.

7a901a6 release: cut the v15.2.11 release
61f92fd build: update ng-dev config to work with Node.js 18.19
a398d2f test: disable failing test
c6feb0b fix(@ angular-devkit/build-angular): `update webpack-dev-middleware` to `6.1.2`
b479063 release: cut the v15.2.10 release
bfc1f0f test: install specific npm version in npm version E2E test
05213c9 fix(@ angular-devkit/build-angular): update dependency postcss to v8.4.31
00d9708 release: cut the v15.2.9 release
f36e38a fix(@ angular/cli): update direct semver dependencies to 7.5.3
cdb34b5 release: cut the v15.2.8 release
069dcdf docs: improve wording in doc command version description
51cf97f release: cut the v15.2.7 release
d9aefd6 fix(@ schematics/angular): replace vscode launch type from `pwa-chrome` to `chrome`
f4a6dac fix(@ angular/cli): process keeps running when analytics are enabled
d9e9f74 refactor(@ angular/cli): update E2E command alias
037d84a ci: update CI `.bazelrc` to better support CI systems.
f9b2fb1 perf(@ angular/cli): register CLI commands lazily
4d81cb4 release: cut the v15.2.6 release
f0b257e fix(@ schematics/angular): ignore hidden directories when running browserlist migration
162484b release: cut the v15.2.5 release
db173d7 fix(@ angular/cli): collect tech information
a8376e2 ci: disable windows job on PRs
85a048b release: cut the v15.2.4 release
f74bfea fix(@ angular-devkit/build-angular): update `webpack` dependency to `5.76.1`

See the full diff

Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Regular Expression Denial of Service (ReDoS)
🦉 Path Traversal

Checkmarx One – Scan Summary & Details – e5f9735b-6a5e-49fb-8978-b9ffaafcff54
New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2023-42282
Npm-ip-1.1.5
Vulnerable Package

CVE-2024-27088
Npm-es5-ext-0.10.53
Vulnerable Package

CVE-2024-27351
Python-Django-1.2
Vulnerable Package

Cxab55612e-3a56
Npm-braces-3.0.2
Vulnerable Package

Cxab55612e-3a56
Npm-braces-2.3.2
Vulnerable Package

Cxca84a1c2-1f12
Npm-micromatch-3.1.10
Vulnerable Package

Cxca84a1c2-1f12
Npm-micromatch-4.0.4
Vulnerable Package

CVE-2023-26159
Npm-follow-redirects-1.14.6
Vulnerable Package

CVE-2024-25710
Maven-org.apache.commons:commons-compress-1.15
Vulnerable Package

CVE-2024-25710
Maven-org.apache.commons:commons-compress-1.20
Vulnerable Package

CVE-2024-28849
Npm-follow-redirects-1.14.6
Vulnerable Package

Unpinned Actions Full Length Commit SHA
/pull_request.yaml: 14
Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...

Unpinned Actions Full Length Commit SHA
/semgrep.yml: 14
Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...

Unpinned Actions Full Length Commit SHA
/build.yaml: 15
Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release. Pinning to a particular SHA helps...

Fixed Issues

Severity
Issue
Source File / Package

CVE-2021-3765
Npm-validator-8.2.0

CVE-2022-25858
Npm-terser-5.10.0

CVE-2022-25858
Npm-terser-5.9.0

CVE-2023-28154
Npm-webpack-5.64.1

Cx4615fedd-34f3
Npm-validator-8.2.0

Cxd312845a-fedc
Npm-validator-8.2.0

CVE-2021-23566
Npm-nanoid-3.1.30

CVE-2023-44270
Npm-postcss-7.0.39

CVE-2023-44270
Npm-postcss-8.3.11

Cx14b19a02-387a
Npm-body-parser-1.19.0

CVE-2023-5752
Python-pip-22.2


Act 588- Filters objective list by Program

What is the Purpose?
It adds a filter to show objectives by selected programs
What was the approach?
Adds a filter variable to display objectives by selected filter in the objective Vue file
Are there any concerns to addressed further before or after merging this PR?

Filter is only on Objectives page but needs to be linked to the Objective tree page (ACT-709)
The pagination is currently removed. The pagination needs to update according to the filtered list (ACT-710)

Mentions?
@Kimaiyo077 @michaelbukachi @odenypeter
Issue(s) affected?
ACT-588

Hey @ninetteadhikari, the filtering of the objectives by program works very well. I am, however, having an issue when creating a new objective. I am not able to save because the program field will have an error even if I select a program from the list, Could you please look into this.

Left so many commented blocks, please delete them if we are not planning on using them.
Also, why is the PR containing commits from other devs? Kindly ensure that you have cleaned the commit history for the PR.

@odenypeter I removed the commented out codes but not sure how to do the commit history clean up. Can you please refer me to any guideline which I can follow? Thanks

Hey @ninetteadhikari, the filtering of the objectives by program works very well. I am, however, having an issue when creating a new objective. I am not able to save because the program field will have an error even if I select a program from the list, Could you please look into this.

@Kimaiyo077 thanks Isaac. this is fixed now:)


rPackages.gfilogisreg: fixed build

Description of changes
Added gmp to nativeBuildInputs and tested example from vignette: https://cran.r-project.org/web/packages/gfilogisreg/vignettes/the-gfilogisreg-package.html
Things done

Built on platform(s)

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

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

put into draft while waiting for results of latest evaluation
https://github.com/NixOS/nixpkgs/pull/298837

opened new PR against r-updates
https://github.com/NixOS/nixpkgs/pull/299824


BlotPlot-whatwareweb

This is a graphing calculator/plotter for the Blot. I am not good at drawing, but I am good at math, and math is an art form, right!?

I encourage you to be try to be more artistic. For inspiration you should look up Inigo Quilez's work. Watch drawing a selfie girl with math. That being said it's a nice clean implementation. I think it earns a Blot.
Congrats you can order it here.


Triggering Webhook upon Receiving Notifications

:bulb: Idea

:computer: Target components

I understand that NTFY is intended to be a simple notification server. However, given that it has email forwarding feature, it would be extremely useful to implement webhook action upon receiving notifications.
It's as simple as this: When a notification is received, perform an outgoing Webhook.
This would greatly expand the capability of NTFY. For example, I can use NTFY as a central location to take in all notifications, then probably distribute the notifications somewhere else, like a Discord/Slack channel, or send them off to other applications to collect data, performing searches, etc. The possibility is endless.
If this sounds like it will deter NTFY from what it is doing, I'd love to learn to contribute to make this happen.
Thank you.

Performing outgoing HTTP requests to untrusted servers is a security issue. Here are just a few dangerous things, but I'm sure there are more:

Webhook URL is "http://<IP_ADDRESS>:1000", "http://<IP_ADDRESS>:1001", ... -- This allows port scanning localhost
Webhook URL is "http://ntfy.sh/mytopic/publish?webhook=http://ntfy.sh/mytopic/publish..." -- This makes ntfy call itself and could potentially be used for recursion
Webhook URL is "http://victim-site.com/abc" -- This can let ntfy participate in illegal scanning/probing/attacking of other sites using ntfy's IP

As a result of this, ntfy will never support calling outgoing HTTP requests for untrusted URLs.
I hope you understand

Performing outgoing HTTP requests to untrusted servers is a security issue. Here are just a few dangerous things, but I'm sure there are more:

Webhook URL is "http://<IP_ADDRESS>:1000", "http://<IP_ADDRESS>:1001", ... -- This allows port scanning localhost
Webhook URL is "http://ntfy.sh/mytopic/publish?webhook=http://ntfy.sh/mytopic/publish..." -- This makes ntfy call itself and could potentially be used for recursion
Webhook URL is "http://victim-site.com/abc" -- This can let ntfy participate in illegal scanning/probing/attacking of other sites using ntfy's IP

As a result of this, ntfy will never support calling outgoing HTTP requests for untrusted URLs.
I hope you understand

Hello.
Thank you so much for the explanation. I overlooked the fact that I was using the self hosted version, which was also the publicly available versions hosted by ntfy and other contributors. This would, in fact, raise a lot of security concerns, to perform unwanted outgoing webhooks, since there are public users that can access the platform.
Is it possible for you to let me know where in the script you started to send out the notifications to the client? I am thinking of digging deeper and maybe forking it just for my own use. I understand it shouldn't be done publicly, but the possibilities of NTFY being able to do these things are so appealing to me.
I apologize in advance for asking this, but are you available for hire if I'd like to make this work just for me? I only need a simple script to be activated every time a notification is received.
Either way, this is an extremely great project and I can't think of a single day I didn't use it since I discovered it.
Thank you so much.

You can use this to activate a script every time a notification is received on a specific topic: https://docs.ntfy.sh/subscribe/cli/#subscribe-to-multiple-topics

You can use this to activate a script every time a notification is received on a specific topic: https://docs.ntfy.sh/subscribe/cli/#subscribe-to-multiple-topics

This looks very promising! One last question, how do I pass the data to the script though? NTFY will have the body and the title, and optionally the tags, priority, etc. Is it possible to access these variables within the script?
Thank you again.

You can use this to activate a script every time a notification is received on a specific topic: https://docs.ntfy.sh/subscribe/cli/#subscribe-to-multiple-topics

Hello.
My apologies for bothering you again. I've looked through the documentation and it looks like it has to go through Linux hosting of the apps? Would there be a way to do this with NTFY installed through Docker?
Thank you.

You can use this to activate a script every time a notification is received on a specific topic: https://docs.ntfy.sh/subscribe/cli/#subscribe-to-multiple-topics

Hello.
I played with it for a bit and realized the 'run a command for every notification only' works when you subscribe to a topic using CLI, then publish a message via CLI. In other words, a topic test in CLI is different than a topic test subscribed via other methods, such as web UI or mobile apps. When a message is published through methods such as HTTP, email, etc., to the topic test that was subscribed to from the Web UI, for example, it won't trigger the command set for the test topic from the CLI.
Is there any way to use the 'run a command for every notification' function from the CLI while still utilizing the ease of publishing a message from the other method, such as HTTP, email, etc.?
Thank you.

The ntfy sub command can react to messages sent from any client (Android, web, CLI, curl, etc.).
I'm guessing you sent messages to your self hosted server and that the ntfy sub command was misconfigured and was subscribing to the test topic on ntfy.sh instead of the test topic on your server

The ntfy sub command can react to messages sent from any client (Android, web, CLI, curl, etc.).
I'm guessing you sent messages to your self hosted server and that the ntfy sub command was misconfigured and was subscribing to the test topic on ntfy.sh instead of the test topic on your server

Hello.
I am using the Docker self hosted version. The command should be written inside the docker container at /root/.config/ntfy/client.yml, am I correct?

No, for the root user, it should be at /etc/ntfy/client.yml

No, for the root user, it should be at /etc/ntfy/client.yml

Hello.
Is there a way to check if the server and the client are using the same host? I've made sure that inside the Docker Container, /etc/ntfy/client.yml has the default-host: https://myserver.com and /etc/ntfy/server.yml has base-url: https://myserver.com.
I am able to receive the notifications coming to the topic test (on PWA app) when I do ntfy pub test Hello!:

And it shows up everywhere:

But the nothing happens in the CLI subscription:

The /etc/ntfy/client.yml is pretty straight forward too:
default-host: https://myserver.com

# This token works
default-token: tk_my_super_secret_token
subscribe:
  - topic: test
    command: 'echo "Command run: $m" >> /etc/ntfy/logs.txt'

It feels like I'm getting really close as soon as I can figure this out somehow.
Thank you for all your help so far. I truly appreciate it.

You need to do ntfy subscribe --from-config without including any topics in the command (since they are already listed in the config file)
And since ntfy pub test sends to your self-hosted server but ntfy sub test does not subscribe to your self-hosted server, that might be a bug in the code. I'd have to test something's myself.

You need to do ntfy subscribe --from-config without including any topics in the command (since they are already listed in the config file)
And since ntfy pub test sends to your self-hosted server but ntfy sub test does not subscribe to your self-hosted server, that might be a bug in the code. I'd have to test something's myself.

I've spun up a new VPS and kept all the files docker-compose.yml & /etc/ntfy/server.yml  the same, and the server works. I can subscribe to from another computer using NTFY ntfy sub and everything worked fine. As soon as I switched back to the other VPS, it stopped working.
Is there any particular port (besides the one ntfy server is on, in this case, 80) that needs to be opened for the polling? Besides the cache.db, user.db, webpush.db, /etc/ntfy/server.yml, /etc/ntfy/client.yml and docker-compose.yml, is there any other files that need to be preserved to replicate an instance at its 100%?
I tried using ntfy server with debug and there was no error shown up when subscribing or publishing at all. I'm not sure what the next step might be. If there is a hidden bug somewhere, how would you propose I diagnose it?
Thank you.


How to ensure token has not been tampered

I'm testing IdentityServer4 and AccessTokenValidation.
At my API's http pipeline I've got the following:
//CORS
app.UseCors(policy =>
{
        var originUris = Configuration.GetSection("Cors:OriginUris").Get<List<string>>();
        policy.WithOrigins(originUris.ToArray());
        policy.AllowAnyHeader();
        policy.AllowAnyMethod();
});

JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();
app.UseJwtBearerAuthentication(options =>
{
      if (_hostEnv.IsDevelopment())
      {
            //for development it is not required https in Authority Uri
            options.RequireHttpsMetadata = false;
      }
      options.Authority = Configuration["Authentication:AuthorityUri"];
      options.Audience = Configuration["Authentication:AudienceUri"]; //should this be URL for the receiver of the token
      options.AutomaticAuthenticate = true;
      options.AutomaticChallenge = true;
});

     var userScopes  = Configuration.GetSection("Authentication:UserScopes").Get<List<string>>();

     app.UseIdentityServerAuthentication(options =>
     {
           options.Authority = Configuration["Authentication:AuthorityUri"];
           options.ScopeName = "api1";
           options.AdditionalScopes = userScopes;
           options.ScopeSecret = "secret";
           options.AutomaticAuthenticate = true;
           options.AutomaticChallenge = true;
      });

I suppose there is no documentation ready yet on how this works, but as I understood this token validation only validates that the access_token has been issued by the AuthorityUri and later the UseIdentityServerAuthentication middleware checks whether it has the required scopes.
Is there any built in capability to detect whether an access token has been tampered?
I've replaced the last character of my access_token with a random one and the authentication/token validation seems to remain valid (and I think it shouldn't so I must do something about it if this is not supported)

The middleware does check the signature yes.
You need to change more than a single character - you may have hit some padding.

Btw - why are you using both middlewares?

After seeing your Sample for an API here https://github.com/IdentityServer/IdentityServer4.Samples/blob/dev/Mvc/src/SampleApi/Startup.cs
I see it's not necessary to use the UseJwtBearerAuthentication middleware. Thanks for that.
Now with only the UseIdentityServerAuthentication middleware plugged into my app's pipeline it seems to work as expected.
Modifying the last character of the Bearer token will trigger an error IDX10503: Signature validation failed so it all looks great!


Update from xdg to xdg-base-dirs

Per https://github.com/srstevenson/xdg-base-dirs/tree/6.0.0#xdg-base-dirs, the Python library formerly known as xdg is now xdg-base-dirs.
Updating the references causes a bump in minimum supported Python versions from 3.8 to 3.10. This seemed fine to me.
The poetry.lock file was updated using poetry lock.

I made this change in response to NixOS's version of frogmouth being broken. https://github.com/NixOS/nixpkgs/pull/263241

As per https://github.com/Textualize/frogmouth/pull/59 - unless there's an actual benefit to this I'll keep the Python compatibility. Last I checked there was no difference in the library.

Yeah, there's no difference I can see in the actual library... and thus, no reason that the xdg-base-dirs developers ought to raise its minimum Python version to 3.8. 🤕 This entire pain is due to that decision.

Yup, there's no obvious benefit in them having raised the minimum Python version. It's an unfortunate decision.