Unexpected ACK received for message-id [null]

I am using Amazon MQ with ActiveMQ engine and seeing an error message where message-id is null when auto ACKs are sent back to the broker. After restarting the program, I will see the client reading the same amount of successful/error messages as if nothing was consumed by the on_message handler
Minimal repro:
message_count = 0
error_count = 0
start = time.time()

async def on_message(message_frame: stompman.MessageFrame) -> None:
    global message_count
    now = time.time()
    message_count += 1
    if message_count % 1000 == 0:
        elapsed = now - start
        print(f"Received {message_count} in {elapsed:.6f}s")

def handle_error(error_frame) -> None:
    global error_count
    error_count += 1
    if error_count % 100 == 0:
        print("Errors:", error_count)

def handle_suppressed_exception(exception: Exception, message_frame: stompman.MessageFrame) -> None:
    print(f"caught an exception, perhaps, producer is not friendly: {message_frame.body=!r} {exception=}")  # noqa: T201

async def main(workers):
    print("[main] entered", flush=True)
    destinations: list = await get_ingest_configurations()
    print(f"[main] destinations={destinations}", flush=True)
    broker_info: dict = await get_broker_information()
    print(f"[main] broker_info={broker_info}", flush=True)
    parsed_url: urllib.parse.ParseResult = urllib.parse.urlparse(broker_info["endpoint_stomp"])
    amq_hosts: list = [(parsed_url.hostname, parsed_url.port)]
    username, password = broker_info["user"], broker_info["password"]
    print(f"username: {username}")
    print(f"password: {password}")
    global error_count
    async with stompman.Client(
        servers=[
            stompman.ConnectionParameters(host=host, port=port, login=username, passcode=password)
            for host, port in amq_hosts
        ],

        # Handlers:
        on_error_frame=lambda error_frame: handle_error(error_frame),
        # on_heartbeat=lambda: print("Server sent a heartbeat"),  # also can be async

        # SSL Context can be either `None` (default), `True`, or `ssl.SSLContext'
        ssl=True,

        # Optional parameters with sensible defaults:
        heartbeat=stompman.Heartbeat(will_send_interval_ms=1000, want_to_receive_interval_ms=1000),
        connect_retry_attempts=3,
        connect_retry_interval=1,
        connect_timeout=2,
        connection_confirmation_timeout=2,
        disconnect_confirmation_timeout=2,
        read_timeout=2,
        write_retry_attempts=3,
    ) as client:
        producers = [client.subscribe(f"/queue/{TOPIC_NAME}", on_message, on_suppressed_exception=print) for i in range(2)]
        await asyncio.gather(*producers)

        print('subscribed')

Stacktrace:
org.apache.activemq.transport.stomp.ProtocolException: Unexpected ACK received for message-id [null]
        at org.apache.activemq.transport.stomp.ProtocolConverter.onStompAck(ProtocolConverter.java:477)
        at org.apache.activemq.transport.stomp.ProtocolConverter.onStompCommand(ProtocolConverter.java:239)
        at org.apache.activemq.transport.stomp.StompTransportFilter.onCommand(StompTransportFilter.java:85)
        at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)
        at org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:172)
        at org.apache.activemq.transport.stomp.StompSslTransportFactory$1$1.doConsume(StompSslTransportFactory.java:73)
        at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:233)
        at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:215)
        at java.base/java.lang.Thread.run(Thread.java:829)

Hi! I've encountered this exact issue when was adding updating integration test to be ran on ActiveMQ Classic additionally to ActiveMQ Artemis. Fixed in 1.6.0.

@vrslev Thank you for the incredibly quick turn around, I'm a true fan of stompman now because of your support. I will test upgrading to 1.6.0 and re running today

That’s very nice to hear, thanks ❤


Support coercion for arrays

Currently there is no way to tell Zod "if you get a single value of correct type, just put it into an array". Existing .coerce() operation could be used for this.
Here is a reference implementation of this logic: https://github.com/lokalise/zod-extras/blob/main/src/utils/toArrayPreprocessor.ts
Test: https://github.com/lokalise/zod-extras/blob/main/src/utils/toArrayPreprocessor.test.ts

I would take this a step further and allow the "coerce" function to be specified instead of allowing only a default per type. E.g. for arrays, a "coerce" could split an input string by ",".

This feels very specific to me, and doesn't strike me as general-purpose API that would be widely used. Solving this with .preprocess is exactly what I'd recommend here.

@colinhacks Is it? For any webservice that relies on zod for defining request schemas this is a very common case for handling request params, when array value arrives with a single entry

I am using something like this in the meantime if anybody is interested (there is certainly room for improvement):
const asArray = <T extends ZodTypeAny>(type: T) => z.any().transform<z.infer<typeof type>[]>((value: any) => Array.isArray(value) ? value.map(el => type.parse(el)) : [type.parse(value)]);
const asSingle = <T extends ZodTypeAny>(type: T) => z.any().transform<z.infer<typeof type>>((value: any) => type.parse(Array.isArray(value) && value.length > 0 ? value[0] : value));

const zMyParams = z.object({
  foo: asArray(z.string()),
  bar: asArray(z.coerce.number()),
  baz: asSingle(z.string()),
  qux: asSingle(z.coerce.number())
});

type MyParams = z.output<typeof zMyParams>;

// gives:
// type MyParams = {
//   foo: string[];
//   bar: number[];
//   baz: string;
//   qux: number;
// }

console.log(zMyParams.parse({
  foo: ['one', 'two'],
  bar: ['1', '2'],
  baz: ['one', 'two'],
  qux: ['1', '2']
}));

// gives:
// {
//  "foo": ["one", "two"],
//  "bar": [1, 2],
//  "baz": "one",
//  "qux": 1
// }

console.log(zMyParams.parse({
  foo: 'one',
  bar: '1',
  baz: 'one',
  qux: '1'
}));

// gives:
// {
//   "foo": ["one"],
//   "bar": [1],
//   "baz": "one",
//   "qux": 1
// }

This feels very specific to me, and doesn't strike me as general-purpose API that would be widely used. Solving this with .preprocess is exactly what I'd recommend here.

Tinkering with this earlier, I would agree, and it works as intended, however in some cases types resulted in "any" or "unknown" Which is problematic. An example here might be a good thing.

This feels very specific to me, and doesn't strike me as general-purpose API that would be widely used. Solving this with .preprocess is exactly what I'd recommend here.

It is not clear to me how to enable array validation processing after preprocessing a string like this.
export const arrayFromString = <T extends ZodTypeAny>(schema: T) => {
    return z.preprocess((obj: unknown) => {
      if (!obj) {
        return []
      }
      if (Array.isArray(obj)) {
        return obj
      }
      if (typeof obj === 'string') {
        return obj.split(',')
      }

      return []
    }, z.array(schema))
  }

// Expected array, received string
roleIds: arrayFromString(z.string().min(1, 'required')).array()
    .min(1, 'min 1 items'),

roleIds = "1,2,3"
roleIds = ""

@mschipperheyn perhaps like this:
export const arrayFromString = <T extends ZodTypeAny>(schema: T) => {
  return z.preprocess((obj: unknown) => {
    if (!obj) {
      return [];
    }
    if (Array.isArray(obj)) {
      return obj;
    }
    if (typeof obj === 'string') {
      return obj.split(',');
    }

    return [];
  }, z.array(schema));
};

const foo = arrayFromString(
  z.union([z.literal('FOO'), z.literal('BAR')])
).refine((value) => {
  return value.length > 0;
});


Patching any document fails: created - Datetime has wrong format

First of all, thanks for this project! I'm quite impressed that you went for asyncio for your first Python project - despite using Python for some 13 years, this was the first time I used asyncio for something non-trivial, and (even being no stranger to async concepts in general, thanks to PyQt): Phew!
If you're curious, here is what I did before running into what I believe to be a bug (described below):

https://github.com/paperless-ngx/paperless-ngx/discussions/5944

With Python 3.11.7, pypaperless 3.0.1 and Paperless-ngx 2.5.4 configured with PAPERLESS_TIME_ZONE=Europe/Zurich, any patch operation fails:
import os
import asyncio
from pypaperless import Paperless

PAPERLESS_HOST = os.environ["PAPERLESS_HOST"]
PAPERLESS_TOKEN = os.environ["PAPERLESS_TOKEN"]

async def main():
    async with Paperless(PAPERLESS_HOST, PAPERLESS_TOKEN) as p:
        async for doc in p.documents:
            await doc.update()
            break

if __name__ == "__main__":
    asyncio.run(main())

results in:
Traceback (most recent call last):
  File "/home/florian/proj/2024-02-26-paperless-import/bug.py", line 15, in <module>
    asyncio.run(main())
  File "/usr/lib/python3.11/asyncio/runners.py", line 190, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/asyncio/base_events.py", line 653, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "/home/florian/proj/2024-02-26-paperless-import/bug.py", line 11, in main
    await doc.update()
  File "/home/florian/proj/2024-02-26-paperless-import/.venv/lib/python3.11/site-packages/pypaperless/models/mixins/models/updatable.py", line 32, in update
    updated = await self._patch_fields()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/florian/proj/2024-02-26-paperless-import/.venv/lib/python3.11/site-packages/pypaperless/models/mixins/models/updatable.py", line 51, in _patch_fields
    self._data = await self._api.request_json(
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/florian/proj/2024-02-26-paperless-import/.venv/lib/python3.11/site-packages/pypaperless/api.py", line 224, in request_json
    raise JsonResponseWithError(payload)
pypaperless.exceptions.JsonResponseWithError: Paperless: created - Datetime has wrong format. Use one of these formats instead: YYYY-MM-DDThh:mm[:ss[.uuuuuu]][+HH:MM|-HH:MM|Z].

because what's being sent to the API is:
{
  "created": "2013-01-01T00:00:00+01:00Z",
  "modified": "2024-02-26T17:19:29.443261+01:00Z",
  "added": "2024-02-26T17:19:29.351168+01:00Z"
}

but that makes no sense (both +01:00 but also Z, which stands for a zero offset from UTC).
This seems to be due to the result = result.rstrip("Z") + "Z" here:
https://github.com/tb1337/paperless-api/blob/6a819f0b6e16324ee0ec5a0f85c43ebda5057fd9/pypaperless/models/utils/__init__.py#L41-L46
added in:

#87

and I can't quite wrap my head around it. The only place where it would make a difference is when datetime.datetime.isoformat() would have multiple Z suffixes (or +00:00Z), which I don't think ever happens? If there is a Z (or +00:00) already, this is a no-op - but crucially, if there is a different timezone, this adds a Z, causing things to explode.
Simply removing that line (and the if) makes things work just fine for me - but it's unclear to me if there's a good reason why it's there which I'm missing.

@The-Compiler I have basically the same setup as you and can reproduce the problem with
paperless = get_paperless()
async with paperless as p:
    document = await paperless.documents(844)
    success = await document.update()

A nasty workaround is to modify created..
paperless = get_paperless()
async with paperless as p:
    document = await paperless.documents(844)
    document.created = datetime.datetime(10,10,10).isoformat()
    success = await document.update()

Hi folks, thank you for throwing in that issue. That'll gonna be fixed soon :)

Thank you! Gonna release the bugfix today.


[BUG] Codecov CI may failed when coverage has minor decrease

Describe the bug
See https://app.codecov.io/gh/eunomia-bpf/eunomia-bpf/commit/d3408a62218e9a85e0e74585e7046b60325e8a43.
There is no code change, but coverage decrease and CI failed.
This is because we use real eBPF programs for test coverage, for example:
https://github.com/eunomia-bpf/eunomia-bpf/blob/master/bpf-loader/test/src/auto_polling_test.cpp
The result output of ebpf program is not deterministic, so the coverage may vary accross commits.
Expected behavior
CI pass when coverage change is small, for example, <0.3%

OS: [e.g. Windows]

Github Action.

Documents may help:

https://docs.codecov.com/docs/github-3-customizing-codecov
https://docs.codecov.com/docs/common-recipe-list#ease-target-coverage
https://docs.codecov.com/docs/common-recipe-list#increase-overall-coverage-on-each-pull-request

Our codecov config:
https://github.com/eunomia-bpf/eunomia-bpf/blob/master/codecov.yaml


Build error multiple times

Describe the bug
Build failed because of webpack errors
Creating an optimized production build .
It was building without issues for a while then suddenly just stopped. I started another project that seems to be building just fine.
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-1uktfe
Steps to reproduce
I click on Deploy
I've initiated the deployment process for the PCReview.co application. The build command npm run build will be executed, and the contents of the out directory will be deployed to Netlify.
Now, let's wait for the deployment to complete and retrieve the deployment status.
Failed building the project. Make sure the build command is correct and try again.
Expected behavior
Should build and launch in netlify
Screen Recording / Screenshot
No response
Platform
Browser name = Firefox
Full version = 131.0
Major version = 131
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:131.0) Gecko/20100101 Firefox/131.0
performance.memory = undefined
Username = plugmakr
Chat ID = f2c5964b9640

Additional context
Error:
Failed building the project. Make sure the build command is correct and try again.

Hi! 👋 Thanks a lot for the report! 😃
We're tracking this issue internally and will let you know when we have a fix in place.

this should be resolved. If not we're adding auto-fixes for deploy build errors which you can track in https://github.com/stackblitz/bolt.new/issues/46


e2e test for Kmesh daemon restart

What type of PR is this?
/kind enhancement
What this PR does / why we need it:
Add E2E case for that managed applications can work properly before, during and after Kmesh daemon restart
Which issue(s) this PR fixes:
Fixes part of #642
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/hold

/unhold

@hzxuzhonghu PTAL

@hzxuzhonghu updated


Scrolling issue on Android

Hi,
I'm having a strange issue with the latest version (0.2.1) on Android when I try to scroll down I see the following:

The first page of the PDF loads properly but when I try scrolling up/down to see the next page it doesn't work and instead I see the text "Loading ..." over a grey background, the only way to get to the next page is to press the up/down arrows (which seem to work properly)
Any suggestions?
Thanks!

I just tested and have the same issue.  Buttons work fine to navigate, though.  Here is my code for loading:
render() {
    return (
        <Container>
            <CHeader title="PDF" press={() => this.props.navigation.toggleDrawer()}/>
            <PdfReader source={{ uri: Expo.FileSystem.documentDirectory + 'test.pdf'}}/>
        </Container>
    );
}

All of my pages on Android just show the loading screen...

I have same problem + when I zoom 3-4 times it fall the app :/ any solution?

Same here. Pages can be displayed by using arrow down but not if I scroll down.

Hey guys, any solutions on this?

I has been researching about this and looks like a incomplete cache implementation.
In react-pdf/Reader.jsx  always show the loading text:
{!cached && this.renderLoader()}
To fix this issue simply remove this line until the cache system is finished.

Hi @boris-burgos & @xcarpentier - sorry if this is a dumb question but is there anything else I need to do here? I grabbed your latest commit (which has that line of code removed) but I am still having the same issue

Nice on @boris-burgos

Hi @m4szymanski.
You need to rebuild the pdf reader bundle.
If you like you can use the v0.2.2 release of our fork. That release has two fixes:

iOs not showing loading icon (#45)
This issue.

And the pdf bundle is rebuild.
If  you want to do it yourself go to react-pdf folder and execute npm run build. Then in the root folder execute npm run bundle.
Regards.

The fork is not published in npm, we don't want to create a "real" public fork.
You can add it with the command:
npm install --save "Codeko/rn-pdf-reader-js#v0.2.2"

Thanks. I've tried your version: the loading disappeared but somehow the pdf pages are not displaying (I can only see the header 1/6 and empty screen)

Actually: it's even weirder than that: as I click up and down arrow sometimes they are displayed and sometimes not

Thanks @boris-burgos ! Your solution worked for me

see latest version maybe: 0.2.3

I tried 0.2.3 and the same problem persists: at first the content id not displayed (although I can see the number of pages correctly at the top 1/6 2/6 etc) and after clicking the up and down arrows a few times the content appears and disappears at apparently random intervals

any news? I rly dont want to detach :/

Still having the same issue on latest version (0.2.3) as well. Also persist on master branch too.

Add "rn-pdf-reader-js": "https://github.com/wiadev/rn-pdf-reader-js/archive/0.2.6.tar.gz" in package.json
This works fine

Thanks @wiadev !! It's working perfectly for me in android.

@wiadev 's solution works perfectly on my end for android too.

Hi,
I this working with SDK 34 too? I can't even open the PDF file.
Thanks!

Hi,
I this working with SDK 34 too? I can't even open the PDF file.
Thanks!

I'm using "rn-pdf-reader-js": "https://github.com/wiadev/rn-pdf-reader-js/archive/0.2.6.tar.gz" with the SDK 34 and it's working perfectly. If you need more information, i can show to you.

Thanks a lot, I will test it and let you know if I run into problems. Thank you.

Should be fixed on v0.5.1.


Windows: error on run pub run custom_element_apigen:update configfile.yaml

Hi,
In the Windows, an error occur on command run pub run custom_element_apigen:update configfile.yaml
See discuss on: http://stackoverflow.com/questions/34150620/custom-element-apigen-gives-an-error-importing-a-polymer-element-to-dart

This package doesn't support windows today, for now I would use linux/mac. See also http://stackoverflow.com/questions/34840718/custom-element-apigen-gives-an-error-importing-paper-datatable-to-dart/34880906#34880906 which got a bit further in the process.
Pull requests would be welcome, as its unlikely that we will get around to fixing this in the near future.


EMA and SMA returns the same values

EMA and SMA with same period returns the same result

sorry it was my mistake i didn't reverse the close prices

It still gives the same output, how did you resolve?

hi, you should try to reverse the data...
in my case i take stocks data from yahoo, here is what i did and it worked :
export const SMA = ({ values, period }) => {
return Indicator.SMA.calculate({
period: period,
values: values.reverse()
}).reverse()[0];
};
export const EMA = ({ values, period }) => {
return Indicator.EMA.calculate({
period: period,
values: values.reverse()
}).reverse()[0];
};
On Thu, Mar 26, 2020 at 8:28 PM tusharsinghal1610<EMAIL_ADDRESS>wrote:

It still gives the same output, how did you resolve?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/anandanand84/technicalindicators/issues/204#issuecomment-604601030,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADJATXTZPJA7KG2UKANJEUDRJONDLANCNFSM4K2QR7YQ
.

I have my data suppose [4,5,6,7,8,9]
if i use period 4
EMA gives = 7.5 (just the simple average of last four)
SMA gives = 5.5 (just the simple average of first four)


Scrolling to end of md file stops scrolling the TOC

If you scroll a page, the subheadings in a md file in the TOC scroll while the TOC frame stays static on the page. However, when you reach the end of a page, the content page and the TOC both move. Most would expect that TOC would scroll to the next topic (to the next md file).
(I know this is a known issue, but putting it in here so it's documented.)

Archiving this, as it's a known limit on mkdocs.


Dapr on Windows 10 / Ubuntu Linux WSL2

In what area(s)?

/area docs

Ask your question here
Hi there, I see that Dapr can work on Linux but wondering if it can work on WSL2 (Windows subsystem for Linux 2) for Ubuntu 20.04 on Windows 10 64-bit? Thanks!

I develop dapr on WSL2, with docker installed on Windows.

That's great Jigar. Is there any documentation that is available on the steps involved that I can refer to? That will be super useful. I did install docker a while ago, uninstalled it for some reason, found that it is leaving some traces in the host file in the etc. folder, so not sure if I was doing it all correct. I will keep a log next time I am experimenting.

I installed docker on the host and used Wsl2 backend. I then did dapr init in wsl2 and have used it.

Thank you! I will try it out - in the meantime I am going ahead and closing the issue.


The svn check out file is not available

From<EMAIL_ADDRESS>on September 10, 2012 15:02:19
I am trying to download BFO2 to have a look.
From the source menu, it is said that 'svn checkout http://bfo.googlecode.com/svn/trunk/ bfo-read-only'
However there is no bfo-read-only file available to check out.
I did download all the folders under trunk/ though.
There are a lot of files there.
Have no clue which one is the correct one to check.
Could you please fix the link?
Thanks,
Asiyah
Original issue: http://code.google.com/p/bfo/issues/detail?id=126

From<EMAIL_ADDRESS>on September 10, 2012 13:47:45
Please get BFO from one of 4 URLs:
OWL:

http://purl.obolibrary.org/obo/bfo.owl 2) http://purl.obolibrary.org/obo/bfo/2012-07-20/bfo.owl Reference:
http://purl.obolibrary.org/obo/bfo/Reference 4) http://purl.obolibrary.org/obo/bfo/2012-07-20/Reference If you want to check out the whole repository, you will find a lot of other things that shouldn't be confused with a release.

In the subversion command you give:
svn checkout http://bfo.googlecode.com/svn/trunk/ bfo-read-only
"bfo-read-only" is the name of the directory that will be created on your machine to hold the checked out items.
Status: WontFix
Owner<EMAIL_ADDRESS>Labels: -Type-BFO2-Reference Type-BFO2-Process


moved zones data to separate files

Description
Moved all zones data to a separate file for each of the providers
Fixes # #27 (first checkpoint)
Type of change
Please delete options that are not relevant.

Bug fix (non-breaking change which fixes an issue

Do you plan to reopen this or the branch cna be deleted? :)

deleted

Thanks @jocalafe


Split Permissions API feature

Do we want to also remove the original entry for permissions API?

Do we want to also remove the original entry for permissions API?

I'm not sure what to do, the chromestatus websites is splitting features a lot. I've filed #240.


Smarthing climate integration not working with Tado

Homeassistant: 0.88.0
HassOS 2.9
Smartthing platform component
I have integrated smarrthings platform in HASS and I have other devices working.
Anyway my TADO AC thermostats are shown as unavailable.
The entities are actually created in HASS after integration.
Exception in async_update_state when dispatching 'smartthings_update': ({'995becc7-09f1-4906-bf65-87e9b5c379af'},)
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/homeassistant/components/smartthings/__init__.py", line 233, in async_update_state
    await self.async_update_ha_state(True)
  File "/usr/local/lib/python3.7/site-packages/homeassistant/helpers/entity.py", line 239, in async_update_ha_state
    attr = self.state_attributes or {}
  File "/usr/local/lib/python3.7/site-packages/homeassistant/components/climate/__init__.py", line 273, in state_attributes
    if self.operation_list:
  File "/usr/local/lib/python3.7/site-packages/homeassistant/components/smartthings/climate.py", line 191, in operation_list
    self._device.status.supported_thermostat_modes}
TypeError: 'NoneType' object is not iterable

This looks like a problem with the Device Type Handler.  Can you share a link to the source code of the handler?

Sure, it comes from here:

Homeassistant: 0.88.0
I have a simular issue with Sensibo device in Smartthings:
Exception in async_update_state when dispatching 'smartthings_update': ({'85e7c324-2dd2-45a0-92ff-7fd178727a5e'},)
Traceback (most recent call last):
File "/usr/src/app/homeassistant/components/smartthings/init.py", line 233, in async_update_state
await self.async_update_ha_state(True)
File "/usr/src/app/homeassistant/helpers/entity.py", line 239, in async_update_ha_state
attr = self.state_attributes or {}
File "/usr/src/app/homeassistant/components/climate/init.py", line 228, in state_attributes
self.precision),
File "/usr/src/app/homeassistant/helpers/temperature.py", line 26, in display_temp
temperature, temperature_unit, ha_unit)
File "/usr/src/app/homeassistant/util/temperature.py", line 25, in convert
from_unit, TEMPERATURE))
ValueError: None is not a recognized temperature unit.

@arnesweb Please open a new issue as you have a different device and different error message.  Please also include the link to the source code of the custom Device Type Handler.

@rafuz So the issue is that the custom device type handler is not implementing the a required attribute of the capability.  Specifically, it's not setting supportedThermostatModes which is required per the (capability specs)[https://smartthings.developer.samsung.com/develop/api-ref/capabilities.html#Thermostat-Mode].
This is a problem with the custom handler and needs to be fixed there.

Ok, it is clear from other logs I have.
I am able to work on the DHT side so I will try to fix it there.
Thanks!

OK!  I created an issue in the upstream repo.  If you come up with a fix, submit a PR back to it! :)


Atom editor install error

index.js:87 Error: Cannot find module '..src\initialize-application-window.js'
at Module._resolveFilename (module.js:543:15)
at Module._resolveFilename (C:\Users\CENGİZ\AppData\Local\atom\app-1.34.0\resources\electron.asar\common\reset-search-paths.js:35:12)
at Function.get_Module._resolveFilename (C:\Users\CENGİZ\AppData\Local\atom\app-1.34.0\resources\app\static<embedded>:11:154667)
at Module.require (file:///C:/Users/CENG%C4%B0Z/AppData/Local/atom/app-1.34.0/resources/app.asar/static/index.js:40:43)
at require (internal/module.js:11:18)
at Object.customRequire (C:\Users\CENGİZ\AppData\Local\atom\app-1.34.0\resources\app\static<embedded>:1:641362)
at setupWindow (file:///C:/Users/CENG%C4%B0Z/AppData/Local/atom/app-1.34.0/resources/app.asar/static/index.js:105:53)
at window.onload (file:///C:/Users/CENG%C4%B0Z/AppData/Local/atom/app-1.34.0/resources/app.asar/static/index.js:67:9)
handleSetupError @ index.js:87

Thank you for contributing!
We require the issue template to be filled out on all new issues and pull requests. We do this so that we can be certain we have all the information we need to address your submission efficiently. This allows the maintainers to spend more time fixing bugs, implementing enhancements, and reviewing and merging pull requests. Please open a new issue and fill out the template for us.
Thanks for understanding and meeting us half way :grinning:


dragend event is received too fast in Chromium

Problem:
I have set up a sortable table but for some reasons the last rows (with a fuzzy definition of last) are not drag'n'dropable because chromium seems to trigger the dragend event before I even move the mouse.
JSBin/JSFiddle demonstrating the problem:
The JSFiddle is not able to reproduce it yet but I'll try to keep it updated by slowly adding the layers of callbacks and event bound to my table rows. Here's the start anyway:
https://jsbin.com/vebuvodabo/1/edit?html,js,output

Any update on this?

Sorry for the delay, I might have a minimal example here:
https://jsbin.com/nafofozoja/edit?html,js,output


Implemented Floyd-Warshall Algorithm

Implemented Floyd-Warshall Algorithm (All pair shortest path algorithm)
Dynamic Programming
Issue #438
Input Graph :

Final Output of the program :

add complexities at the end.

add complexities at the end.

Done

add complexities at the end.

@rudrakshi99 Please review it again and let me know of any changes you want.

Update the list in the readme of the graph folder.

Update the list in the readme of the graph folder.

Done😁


feat: retry store events

Let's stall this until we redeploy new Oracle Sidechains to Sepolia, and we make a good test run. 🙏


Change menu and text on homepage to c4n red

here are the color code:
Red: #E00015
Blue: #00ADEF
so the text is more visible.

Haha, three of us had the same thought. Was doing exactly this.

haha. bro -  we gotta brighten up that photo on the homepage -- right now it looks like a storm is coming -- and it's sad

Did that.

thanks! may be a bit more - and make falgun/march date bold? (sorry i was not able to find good photos for the homepage.)

amit - where did you get this photo from? i just want to see if it's creative commons or if we need to get permission/buy etc

I found it here: http://www.bgfotography.com/wp-content/uploads/2014/11/JanakiTemple.jpg

thanks. i'm gonna ask the photographer for permission. in the meantime is there a way to give credit to the photographer in the footer, saying this: Photo: Bishal Gautam.
Also, pls take out shadow from the text on the homepage - -just make bold and brighter?

Have a look. Is the font ok?

Personally, I liked the default background image better. It fitted better with the white text. Currently, the text doesn't seem upto the mark.


Add support for nomic-ai/nomic-embed-text-v1

Feature request
TEI currently does not appear to support nomic's newest embedding model: nomic-ai/nomic-embed-text-v1. When attempting to load the model with docker image ghcr.io/huggingface/text-embeddings-inference:latest (sha-6395a7a), I receive the following error:
Error: Failed to parse `config.json`

Caused by:
    missing field `pad_token_id` at line 56 column 1
Failed to run text-embeddings-router.

Motivation
nomic-ai/nomic-embed-text-v1 is likely to be a popular open-source embedding model, given its position on the MTEB leaderboard and its enormous context window. Thus, support for this model in TEI would be of great benefit to the community.
Your contribution
Given some general guidelines, I am willing to assist in preparing the model for TEI compatibility.

nomic is definietly in my prio list but I have other things I need to tackle first.
Thanks for asking for it though as it's always good to know that the community is interested in something to correclty set the priorities for the repo.

+1


timeout_after memory usage

I investigated the memory usage of the timeout_after function. The returned future size is larger than expected. If a future with the size of n is passed into the timeout_after function, the returned future will have the size of n * 4 + 120
It may related to the rust-96084 issue
you can find the example repo here
Environment
RTIC: { version = "2.0.1", features = ["thumbv6-backend"] }
rustc 1.78.0-nightly (d44e3b95c 2024-02-09)

Thank you for reporting! I forgot to make a note here during the meeting
Discussed during meeting: hackmd
Matrix: message


Documentation: Access to Claims

Documentation should also be written for this new functionality.

Documented the MessageHandler and MessageAndClaimsHandler in https://github.com/International-Data-Spaces-Association/IDS-Messaging-Services/wiki/03.-Module:-Messaging


Some questions regarding implementation

Hi, I was wondering why do you apply Dropout2D (which drops a colour channel given certain probability) in the network. As far as I know, you convert the images to single channel greyscale before feeding these to the network, which means that Dropout2D is getting rid of the single channel you have 20% of the times.
Also, what is the difference when it comes to learning improvement when using Reflective Padding?
Thanks, great tutorial and repo by the way.
Dani

Thanks for pointing it out.
Intuitively , I assumed that individual pixels will be zeroed out , and not entire channels.
After reading the docs, it is actually happening the way you mentioned.
In the case of grayscale images, this effectively does nothing but slow down learning.
If you want to submit a pull request without the dropout layers removed, feel free.
Otherwise I will just update it myself.

Done. Regarding reflective padding, I was mostly concerned on why is it necessary. What is the difference of applying it to just changing the input of the first fully connected layer to:
nn.Linear(int(7.238*100*160), 500)
Out of curiosity I found an interesting discussion regarding the topic of Zero Padding vs Reflective Padding.
Dani

If padding is not put , the later convolution layers will gradually lose some amount of information. The final padding may not be required, but the others are (to preserve information)


Does not work on huawei P30

Attach (recommended) or Link to PDF file here:
Configuration:

Web browser and its version:
Operating system and its version:
PDF.js version:
Is a browser extension:

Steps to reproduce the problem:
1.
2.
What is the expected behavior? (add screenshot)
What went wrong? (add screenshot)
Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):

Same question on vivo X27

Please see https://github.com/mozilla/pdf.js/wiki/Frequently-Asked-Questions#faq-support for the only support information that we can realistically provide. Note that it's not feasible to provide device-specific information, and that we thus only provide support information for browsers.

When opening an issue, please provide all of the information requested in https://github.com/mozilla/pdf.js/blob/master/.github/ISSUE_TEMPLATE.md since as-is this issue is missing every necessary piece of information required to be valid.


Add circular in-memory exemplars storage

This PR implements a basic in-memory storage of exemplars via a large circular buffer. This means there's an overall limit (configurable by users) on the number of exemplars stored total, but no limit (other than that overall limit) on the number of exemplars stored per series.
The public design doc is here.
Signed-off-by: Callum Styan<EMAIL_ADDRESS>

The one concern I have with the exemplar store option is that it expects that exemplars are stored outside of the actual time series. Given that exemplars are emitted alongside a value in a time series, I think its beneficial to make the decision of how to persist them a concern of the storage.
By augmenting the appender interface with something like this #6844 (limitedly intrusive) it allows the storage to decide how it would like to deal with exemplars - by implementing the Appender accordingly. A storage can ignore the exemplar, store both exemplar and value or just store the exemplars like in the in-memory storage you have in this PR..

Since I'll be picking up this work again soon I've rebased off master, fixed issues from that, and squashed commits down to one. The failing test is in TestEndpoints for remote storage querying for exemplars.
@bwplotka I'm struggling to understand how to use the new Queriers. The exemplar API requires a set of SeriesSet that exist for the query (the API accepts PromQL), and I think the panic I am getting is related to remote read now being streaming. Any suggestions?
--- FAIL: TestEndpoints/remote (0.15s)
        --- FAIL: TestEndpoints/remote/run_47_queryExemplars_"query=test_metric3%7Bcluster%3D%22abc%22%7D+-+test_metric4%7Bcluster%3D%22abc%22%7D" (0.00s)
            --- FAIL: TestEndpoints/remote/run_47_queryExemplars_"query=test_metric3%7Bcluster%3D%22abc%22%7D+-+test_metric4%7Bcluster%3D%22abc%22%7D"/GET (0.00s)
panic: secondaryQuerier: Select invoked after first Next of any returned SeriesSet was done [recovered]
	panic: secondaryQuerier: Select invoked after first Next of any returned SeriesSet was done

The error you are getting is related to concurrent selects really. You cannot run multiple Selects if you touch any Next from the same querier's select already.
Just schedule all selects first, then iterate: this allows to run selects concurrently.

@bwplotka Hmm okay so this was because I was calling the exemplars querier Select nested within the queriers Select, since with remote read the Select call can be streaming now? Is that where the requirement

You cannot run multiple Selects if you touch any Next from the same querier's select already.

comes from?

@cstyan  I looked at the design docs: https://docs.google.com/document/d/1ymZlc9yuTj8GvZyKz1r3KDRrhaOjZ1W1qZVW_5Gj7gA/edit
But I have no clue, sorry. I am just a user.
But I would really love this feature: Jump from a grafana graph to traces. This would be magic.
Thank you for working on this!

thanks for the reviews so far @brian-brazil @codesome I hope to get to the rest of your comments and some of my own todo list this week still

I did try a variation of this PR and I was surprised that for a query 10e3* histogram_quantile(foo) the exemplar value was not modified by 10e3. I don't know  how easy that would be however, but when switching to "explore"  with the TNS default dashboard it was confusing to me.

I don't know how easy that would be however,

I doubt it's practical, given how complex PromQL can be.

@brian-brazil @codesome thanks for the reviews, I'm still actively working my way through open comments but I've addressed or replied to many at this point.

@brian-brazil @codesome thanks for the reviews, I'm still actively working my way through open comments but I've addressed or replied to many at this point.

@brian-brazil I'm having trouble finding them when digging through everything in this PR, but based on your earlier comments I'm getting the sense that when adding exemplars to the storage we should be checking the scrape timestamp, or the scrape timestamp and exemplar timestamp? and when querying we would only look at the exemplar timestamp.
My question is whether there's anything in the exposition format, or implementation of open metrics in the instrumentation library, that stops the user from exposing a sequence of exemplars with timestamps not in increasing order? I'm trying to figure out if we need to handle receiving exemplars for a series with timestamps that are "out of order". Is the intention that the client libraries don't allow explicit setting of the timestamp by the user, like client_golang has done?

I'm getting the sense that when adding exemplars to the storage we should be checking the scrape timestamp, or the scrape timestamp and exemplar timestamp? and when querying we would only look at the exemplar timestamp.

Yes. For ingestion my current thinking is that if there's no exemplar timestamp then the sample timestamp is used as the exemplar timestamp, and querying looks at the exemplar timestamp.

My question is whether there's anything in the exposition format, or implementation of open metrics in the instrumentation library, that stops the user from exposing a sequence of exemplars with timestamps not in increasing order?

Nothing explicit, we don't have that explicitly for sample timestamps either (which are discouraged anyway). In Prometheus terms you should probably reject exemplars where timestamps are going backwards.

Is the intention that the client libraries don't allow explicit setting of the timestamp by the user, like client_golang has done?

I'd expect that most users would have the client library take care of it for them in terms of direct instrumentation, but that client libraries may also allow explicitly specifying it - gettimeofday() isn't free after all.

@brian-brazil thanks, that clarifies and simplifies things a lot. I'm not storing the scrape timestamp as the exemplar timestamp if there was no exported timestamp for the exemplar. This means we only have a single timestamp to care about when deciding whether to store an exemplar or include it in query results.

For me https://github.com/prometheus/prometheus/pull/6635/files#r498224939 is blocking before we can merge this. The exemplar API should be able to return NaN exemplars. I'd like to have us return strings before merging so we do not have to break the api after the release.

Yeah that is blocking for me as well.

@roidelapluie @codesome On Friday I made the change to have the exemplar timestamp returned as a string for API responses by reimplementing the exemplars MarshalJSON function and using the same math in the function Brian had pointed out earlier in the PR comments. Just pushed it.
Let me know if this is not how you guys were thinking this should be implemented. Honestly, even after reading that comment thread through a few times over the last few weeks I was unsure on where to actually make the change.

The timestamp should not be returned as a string, as in /query we return a number. It is the value of the exemplar which should be a string.

Also, I think that we should de-duplicate the exemplars in the query results. If the same exemplar is scraped multiple times, it will be returned multiple times by the API.

Note: currently, when an NaN is passed as value of the exemplar, we get the following error:
curl "<IP_ADDRESS>:9090/api/v1/query_exemplars?start=0&end=$(date +%s)&query=foo_total"
v1.response.Data: []v1.exemplarData: v1.exemplarData.Exemplars: []exemplar.Exemplar: json: unsupported value: NaN

The timestamp should not be returned as a string, as in /query we return a number. It is the value of the exemplar which should be a string.

Yep, noticed I had got these mixed up a few minutes after my last comment. I'm still not 100% sure on the implementation though. So we shouldn't fail on NaN anymore:
curl -g 'http://localhost:9090/api/v1/query_exemplars?query=test_exemplar_metric_total&start=2021-02-04T09:22:25.479Z&end=2021-04-15T09:23:25.479Z'
{"status":"success","data":[{"seriesLabels":{"__name__":"test_exemplar_metric_total","instance":"localhost:8090","job":"prometheus","service":"foo"},"exemplars":[{"labels":{"traceID":"UvcOR2sK2FHSRnoR"},"value":"NaN","timestamp":1612741314.942}]}]}

Also, I think that we should de-duplicate the exemplars in the query results. If the same exemplar is scraped multiple times, it will be returned multiple times by the API.

If the same exemplar is scraped muiltiple times it will only be stored the first time, so we don't need to dedupe at query time. However that does point out something I need to fix. Previously I was storing both the scrape timestamp and exported exemplar timestamp in the exemplar storage. Now, if the exemplar does not have a timestamp at scrape time I'm assigning the scrape timestamp as the exemplars timestamp. This means that currently an exemplar that doesn't export its own timestamp could be stored multiple times since it won't be detected as a duplicate. So the exemplar Equals function should ignore the timestamp field if HasTs is false.

NewCircularExemplarStorage now checks that the length passed is at least 1.
./prometheus --storage.exemplars.exemplars-limit=-1
gives
level=error ts=2021-02-08T03:50:46.281Z caller=main.go:867 err="opening storage failed: must initialize exemplar storage with space for at least 1 exemplar, -1 is invalid"
Also @codesome @roidelapluie see this section of the design doc for the per exemplar bytes #s. Keep in mind it's been more or less a year since that doc was written :smile:

Also, I think that we should de-duplicate the exemplars in the query results. If the same exemplar is scraped multiple times, it will be returned multiple times by the API.

If the same exemplar is scraped muiltiple times it will only be stored the first time, so we don't need to dedupe at query time. However that does point out something I need to fix. Previously I was storing both the scrape timestamp and exported exemplar timestamp in the exemplar storage. Now, if the exemplar does not have a timestamp at scrape time I'm assigning the scrape timestamp as the exemplars timestamp. This means that currently an exemplar that doesn't export its own timestamp could be stored multiple times since it won't be detected as a duplicate. So the exemplar Equals function should ignore the timestamp field if HasTs is false.

I will double check,  but I was seeing duplicate exemplars with same timestamp in my tests.

@codesome @roidelapluie I updated the benchmarks in promtool tsdb.go so that when ingesting samples we'd also ingest exemplars. I can clean up and push the changes if you guys want, but here are the results for now.
Samples only, no exemplars:
>> completed stage=ingestScrapes duration=739.722092ms
 > total samples: 3000000
 > total exemplars: 0
 > samples/sec: 4.0555124711428997e+06

1% of samples have an exemplar:
>> completed stage=ingestScrapes duration=1.016784125s
 > total samples: 3000000
 > total exemplars: 30000
 > samples/sec: 2.950460186127342e+06

Every sample has an exemplar:
>> completed stage=ingestScrapes duration=49.754203206s
 > total samples: 3000000
 > total exemplars: 3000000
 > samples/sec: 60296.406587737874

I think even 1% of series having an exemplar is probably high, but in that case we're 33% slower on ingest. There could be some optimizations in terms of checking if the exemplar is appendable either during scrape or in tsdb AddExemplar before we get to exemplar storage where the lock is, but that might not be reflected in this benchmark.

If we have a performance impact of 33% on ingest we should consider being able to pass =0  to disable the feature.

/prombench master

If we have a performance impact of 33% on ingest we should consider being able to pass =0 to disable the feature.

+1. Currently it will just store no exemplars but will take the lock anyway if it's set to 0.

I don't think prombench will show us any difference since they are not exposing exemplars?

I don't think prombench will show us any difference since they are not exposing exemplars?

I do not expect that either, but I wanted to make sure, that does not hurt.

I agree with @tomwilkie  that the API for querying is not nice, because if you query 2*foo, you would get the exemplars for foo, but not multiplied by 2. Add promql functions on top and it is even more confusing. I had that issue when trying out explore with grafana, it was not intuitive. Having an api which is series-like would make more sense.

Should we be persisting to the WAL in this PR? There is not user of this feature in this PR - perhaps this belongs in the future PR?

This is under construction in https://github.com/prometheus/prometheus/pull/8296. We split it out to keep this PR simpler.

Something that hit my mind also:
The current approach of passing an expression means that you can have results that do not even contribute to the result.
e.g.
a_total * b_total

Would return the samples for both a_total and b_total, even they labelset if different and therefore produce no output.

I agree with @tomwilkie that the API for querying is not nice, because if you query 2*foo, you would get the exemplars for foo, but not multiplied by 2. Add promql functions on top and it is even more confusing. I had that issue when trying out explore with grafana, it was not intuitive. Having an api which is series-like would make more sense.

This isn't the API I'm referring to - I actually like the HTTP API.  Making the client do the work of extracting the selectors from the query is worse IMO - we can more easily do that server side.

if you query 2*foo, you would get the exemplars for foo, but not multiplied by 2.
Would return the exemplars for both a_total and b_total, even they labelset is different and therefore produce no output

Even if we don't handle these in the current code, I think keeping the API as is leaves room for handling them in the future.  The same is true for recording rules.

Should we be persisting to the WAL in this PR? There is not user of this feature in this PR - perhaps this belongs in the future PR?

This is under construction in #8296. We split it out to keep this PR simpler.

To be clear my suggestion is we remote the code for persisting exemplars to the WAL from the this PR - unless I've misread the code and thats not what its doing...

Getting this error with the latest changes:
level=info ts=2021-02-10T20:55:39.749Z caller=main.go:762 msg="Server is ready to receive web requests."
panic: secondaryQuerier: Select invoked after first Next of any returned SeriesSet was done

goroutine 495 [running]:
github.com/prometheus/prometheus/storage.(*secondaryQuerier).Select(0xc00170d6c0, 0xc000061f01, 0x0, 0xc00019fde8, 0x1, 0x1, 0x3231180, 0x441496)
	/app/storage/secondary.go:68 +0x226
github.com/prometheus/prometheus/storage.(*mergeGenericQuerier).Select.func2(0xc0019e2ee0, 0xc0019aa300, 0x0, 0xc00019fde8, 0x1, 0x1, 0x3231280, 0xc00170d6c0)
	/app/storage/merge.go:131 +0x9c
created by github.com/prometheus/prometheus/storage.(*mergeGenericQuerier).Select
	/app/storage/merge.go:127 +0x456

Above issue fixed by https://github.com/cstyan/prometheus/pull/3
Now I see lots of:
level=error ts=2021-02-10T21:58:29.434Z caller=scrape.go:1089 component="scrape manager" scrape_pool=app target=http://app:80/metrics msg="Scrape commit failed" err="adding exemplars: out of order exemplar"
level=error ts=2021-02-10T21:58:41.365Z caller=scrape.go:1089 component="scrape manager" scrape_pool=db target=http://db:80/metrics msg="Scrape commit failed" err="adding exemplars: out of order exemplar"
level=error ts=2021-02-10T21:58:44.402Z caller=scrape.go:1089 component="scrape manager" scrape_pool=app target=http://app:80/metrics msg="Scrape commit failed" err="adding exemplars: out of order exemplar"

When using the docker-compose setup from https://github.com/grafana/tns/tree/main/production/docker-compose

Even with the HasTS changes, still see:
adding exemplar:  {{traceID="4bab259f35822968", traceID="6d8d479197afcd9d", traceID="110d49d20466fddf", traceID="6491cb56c9f467df", traceID="c461e255cbd52b3", traceID="24ad61e8823aa87d", traceID="60a505cb6ff61c56", traceID="31cb31dfc001cf31", traceID="72ce126a24bd7811", traceID="59cb3c6913010fdb", traceID="110d49d20466fddf", traceID="6e9374f4624de108", traceID="50d125b54e8fe622", traceID="c0102527e4eda52", traceID="59cb3c6913010fdb", traceID="5b30d19000f8514a"} 0.0001029 true<PHONE_NUMBER>973}
adding exemplar:  {{traceID="3dc59a1a0a371121"} 0.0043865 true<PHONE_NUMBER>754}
adding exemplar:  {{traceID="3dc59a1a0a371121", traceID="5ff585a39945d705"} 0.0066431 true<PHONE_NUMBER>863}
level=error ts=2021-02-11T10:00:33.720Z caller=scrape.go:1089 component="scrape manager" scrape_pool=loadgen target=http://loadgen:80/metrics msg="Scrape commit failed" err="adding exemplars: out of order exemplar"

Which makes sense, as the demo app has timestamps.  I've prepared a test & fix here: https://github.com/cstyan/prometheus/pull/4

It appears to me that we do not take offset into consideration when asking for exemplars.

I think we do not take offset into consideration when asking for exemplars. And what timeframe should we return then?

I think there is no 100% clarity on the the co-relation between the sample timestamp and the exemplar timestamp. The exemplar timestamp is when the exemplar was created and nothing to do with the samples. So I think taking the query times makes sense than taking from the query samples since it sounds like "give me exemplars that were created between this time".
Since in most cases exemplars would have their own timestamp and in some cases they take timestamp of the sample in the scrape, not sure what is a definitive answer here. But taking query ranges only feels more natural.

@roidelapluie I have squashed all the commits and it is pointing to release-2.25 branch now. (If anyone want to look at individual commit history, you can find it in this branch)

@roidelapluie that is my confusion too (linking unrelated exemplars to a query). Also, currently we can pass matchers as a valid PromQL query (vector selector), user would still have to power to query the per series exemplars .

I will wait for tests to pass

@tomwilkie found some issues running this with the TNS demo, and given the last moment rush, let's not force it into 2.25 :) lots of testing still to do
@roidelapluie ^

This is expected because we have changed the API

@tomwilkie found some issues running this with the TNS demo, and given the last moment rush, let's not force it into 2.25 :) lots of testing still to do

I'm happy that we've not been able to reproduce these now, must have been my machine.  A few nits and then we should be good to go.

Super close now.  Dug into the implementation of AppendExemplar and added a few comments.

Thanks to @mdisibio @codesome and @tomwilkie for keeping this going while I was out last week.
I've pushed two commits to simplify AppendExemplar. As others have pointed out, we'd already removed some series labels checks from AppendExemplar since it is always called after a call to Append, I've now removed the rest but also added a call to remove any empty labels from the exemplars labels.

@tomwilkie @codesome @roidelapluie I feel like we're good to merge here. @mdisibio and I cleaned things up based on Tom's last review, and I've made a small fix to the way the query results return array is instantiated so that an empty query result will return [] rather than null as Julien noted on the second PR.

:100: thanks


Non-op players cannot set/get their own keepInventory state.

Currently it can only be done by just asking a level-3 operator to manually set their setting, a mild inconvenience for smaller servers, but as the server scales up it just becomes a huge problem.
Ideally tho, some sort of permission API could be used to work with LuckPerms.
On that note, it's strange that non-op players can view (with command autocompletion) the entire command chain up to the point where the final decision of said command can be made, theoretically it could be solved by the same permission system.

Does work, thanks.
I'd assume you already know, but the reason it doesn't work is it appears that the command's permission level is 3, while command blocks only supports commands with a perm level of <=2.
If I were to be nitpicky about commands though, I feel like the top level command should be named just "keepinv", without the "i" in the beginning, but that's just a flavor thing anyway. If I really wanted I would just modify the source code and compile my own version.


Alt+F4 quits Obsidian despite Run in Background

Obsidian version: 1.0.3
Electron version: 18.3.15
obsidian-tray: master
OS: Linux
DE: Xfce 4
I've checked the Run in Background setting, just in case I've restarted Obsidian, and made sure the setting is set.
Pressing the window's close icon minimizes to the tray, all good.
Pressing Altr+F4 (window managers close window action) quits Obsidian.

This is intended behaviour. The "Run in background" feature runs the app in the background when interacted with normally, it isn't there to prevent force-quitting the app e.g. via Alt+F4 or using the "Quit" action in the tray menu (that comes a little too close to acting like malware for my taste).
If you would like to hide the app's windows instead of quitting them, you can use the "toggle window focus hotkey" instead of Alt+F4.

@naquad FYI this behaviour has changed with the latest release, Alt+F4 now minimises windows to the tray instead of quitting the app.


Device/Mobile Tracking

It says in your Docs that you don't use user agent string for tracking, but instead runs a check to see if the device can rotate.
However, I have just tested this on my mobile, and I cannot see any data reflected on the analytics.
Is this scrapped?
Could there be a way of tracking this data, without invading privacy?  As a web developer, I'm thinking something along the lines of screen-size or orientation (which, would actually be useful for me as a developer for responsiveness).

Thanks for the information.
You are true that mobile devices are becoming more high-scale.  I'd recommend checking if the screen is touch-enabled, although there are more devices with touchscreens nowadays (I've got a [dead] laptop that has touchscreen).
This actually poses an issue with responsive web design (I'll worry about that later), so I'll need to do some testing to see what happens with media queries.
Could getting the device's viewport be useful?  A few lines of code to get the device/window width and height?
It wouldn't be as simple as bool, but it still would be useful data.  You could extrapolate if the user is viewing the "mobile" design or the "desktop" design.

I'd recommend checking if the screen is touch-enabled, although there are more devices with touchscreens nowadays

Yeah, touch unfortunately has too many false positives caused by laptops with a Touchscreen so that'd be just as inaccurate as the current approach.

Could getting the device's viewport be useful? A few lines of code to get the device/window width and height?

I'm not sure if we want to start collecting the actual viewport size and start displaying it in the stats (correct me if I'm wrong @hendr-ik). Having the boolean "Mobile" signal seems to be a good compromise between privacy and usefulness assuming it works well.
Question is: how do we get there? It'd be nice if we could find a solution that does work without having to look at the UA string, but that's maybe not a 100% hard blocker.
Considering the current approach will work each day in the future while the API is being deprecated we'll have to come up with some solution anyways. We'll add this to our agenda. Any ideas about how to implement this are welcome.

Maybe instead of displaying a bunch of resolution stats (again, it would be extremely helpful as a web developer, so maybe a sneaky hidden area for me :-P) you could use their viewports to categorise them as "desktop" or "mobile".
This wouldn't be based on their device, but literally how they are viewing the site; so people viewing the site with a resized window (and thus, the responsive design) would be "mobile".
Not 100% accurate, but it would show how the site is being viewed.

I'm not entirely sure I understand what you mean when you say "viewport". Is this just the size of the browser window or does it include other factors as well?
As said earlier, my laptop's resolution (1920x1080) is smaller than a newish Samsung Galaxy (2340x1080), so I'm not sure if this allows a better quality than the current approach. I start wondering if the screen's aspect ration could be a good hint though.

Viewport is different from resolution.  They may match when in fullscreen (F11), but with the URL bar, Bookmarks, etc., you may maximise the window, but it won't be 1920x1080.  The viewport would 1920x927px (in my instance).
My phone has a resolution of 2560x1440 on a 5.7" screen, but the actual screensize (including address bar)/viewport (just what is visible) is 408x725 / 408x598 in portrait mode.
You can check for yourself at What is my viewport (I can't post the screenshot).
It really depends on what you'd like, whether you was to get the screen size or the viewport (both can be done with vanilla JS).
Using that, you'd get the viewable area, and then have to do some decision making if(innerWidth/aspectRatio < breakpoint) { mobile = true }

My phone has a resolution of 2560x1440 on a 5.7" screen, but the actual screensize (including address bar)/viewport (just what is visible) is 408x725 / 408x598 in portrait mode.

Do you know how this would behave on a laptop that has a so-called "Retina" screen? Would it also divide the measures? I don't have any device with me that I could use for testing this and I'm still a little confused about what's going on?

If we take the Macbook Pro (13" 2018 and 16" 2019 models), both have retina.
They both can have a resolutions up to 2560 x 1600 and 3072 x 1920, but their physical screen sizes limit their viewports to 1280 x 800 and 1536 x 960.  This is why my phone, although can rival some PCs, will always show mobile-friendly sites, but also has the option to "view desktop mode".
And some monitors just cannot handle the larger resolutions; it is why I don't get laptops less than 14" (the resolutions were always too small).
I would liken this to playing games in "fullscreen".  Your computer may have a resolution of 1920x1080, but you set the game resolution to 1024x768 (why would you do that, you monster).
You can see that the game is "scaled down" to fit the game resolution and everything looks bigger.  If you were to set it to 1920x1080, everything would look 1:1.
Or in a similar way, it's like when you plug a new monitor into a Windows 10 machine.  It may set the resolution to the "max size", but it also increases the scale and layout.
I've got 3 monitors, all at 1920x1080, but one of them is physically smaller than the others (by a significant amount).
On this monitor, things just look sharper and clearer, but it also cost far more than the other two combined.
So, even though your phone may be advertised as "4K Resolution", that doesn't mean you can view a site in "desktop mode", because the text and images will be far too small.
The viewport is the actual resolution which is used for responsiveness (which is determined by the advertised resolution, with the physical screen size, to get the pixel per inch).
Essentially put, if you get the window's width and height, or the viewport, you can determine what "view" the user is using.
If you can access Dev Tools (F12 on any browser) you should have an option to view the site as different devices (or use Blisk).  This gives an accurate representation of what mobile users would see, and you'll be able to see what "resolution" they are using.
https://yesviz.com/devices/macbookpro-2018-13/
https://yesviz.com/devices/macbookpro-16-2019/


Meet the designer March

Meet the designer documentation. 09.03.22
Rebecca

https://web.microsoftstream.com/video/6ea59c40-955e-4a53-bd17-9044dcd24fa2?list=studio
Shared in Slack under the existing thread.


[BUG] test_read_hive_fixed_length_char integ test fails on Spark 3.4

ORC fixed length string reader tests (test_read_hive_fixed_length_char) fails on Spark 3.4:
FAILED ../../src/main/python/orc_test.py::test_read_hive_fixed_length_char[read_orc_df-fixed-length-char-column-from-hive.orc][INJECT_OOM] - pyspark.errors.exceptions.captured.IllegalArgumentException: Part of the plan is not columnar class org.apache.spark.sql.execution.ProjectExec
FAILED ../../src/main/python/orc_test.py::test_read_hive_fixed_length_char[read_orc_sql-fixed-length-char-column-from-hive.orc] - pyspark.errors.exceptions.captured.IllegalArgumentException: Part of the plan is not columnar class org.apache.spark.sql.execution.ProjectExec

It appears that the read path is slightly different in Spark 3.4. This might need slightly different handling in at least the tests.

It appears that Spark 3.4 has changed behaviour in its handling of CHAR(N) has changed.
All Spark versions up to 3.3 return STRING values, with trailing spaces trimmed.
3.4 returns untrimmed values, uniformly of length 3.
The infuriating part of this is that CUDF returns what 3.4 does, by default. We filed spark-rapids/pull/829 to "fix" it for Spark < 3.4.


x/exp,x/mobile/gl: build failure on darwin-arm64-11_0-toothrot due to missing OpenGL ES headers

Note that the build failure here is on an x/mobile library, but the failure is observed while building the x/exp repo.
2020-12-15T15:35:30-b5a6e24/darwin-arm64-11_0-toothrot
# golang.org/x/mobile/gl
In file included from /tmp/buildlet/gopath/pkg/mod/golang.org/x/mobile@v0.0.0-20190719004257-d2bd2a29d028/gl/work.go:29:
./work.h:18:10: fatal error: 'OpenGLES/ES2/glext.h' file not found
#include <OpenGLES/ES2/glext.h>
         ^~~~~~~~~~~~~~~~~~~~~~
1 error generated.

CC @golang/release @hyangah

I missed this and made a duplicate issue #43237. This was fixed, see that issue for details.


[Feature]: Power Pipeline Test Engine Execution with Native Integration

Is your feature request related to a problem? Please describe.
Makers need to be able to streamline testing processes, ensuring high-quality applications are delivered through every stage of the deployment pipeline with minimal manual intervention.
Key elements to consider:

Local Testing:

Provide clear steps and tools for executing tests locally.
Documentation on setting up a local environment that mirrors the Power Platform pipelines.
Examples of running typical tests locally before pushing changes to the pipeline.

Execution with Power Platform Pipelines:

Detailed guidance on integrating test execution within Power Platform pipelines.
Instructions for configuring pipelines to include test stages in the approval and review process.
Ensure the pipeline supports transitions from development to test, and then to production, with automated test execution at each stage.

Extensibility Points for Low-Code ALM:

Provide extensibility points in the pipeline to accommodate custom test processes.
Documentation on how to leverage these points to build a low-code ALM (Application Lifecycle Management) process.
Examples of implementing test execution within the ALM framework, ensuring each phase of development includes comprehensive testing.

Describe the solution you'd like

Local Testing:

Steps and Tools for Local Execution:

Provide a clear, step-by-step guide on how to set up local testing environments using Visual Studio Code.
Include instructions on how to install necessary extensions and configurations to mirror the Power Platform pipelines.

Documentation:

Detailed documentation on setting up a local environment that mimics the actual deployment pipelines.
Examples of running typical tests locally before changes are pushed to the pipeline, ensuring initial errors are caught early.

Execution with Power Platform Pipelines:

Integrating Test Execution:

Provide detailed guidance on integrating test execution within Power Platform pipelines.
Include instructions on configuring pipelines to incorporate test stages within the multi-stage approval and review process.

Automated Transitions:

Ensure the pipeline supports seamless transitions from development to test, and then to production, with automated test execution at each stage.

Post-Deployment Test Execution:

Utilize the Extend pipelines in Power Platform documentation to trigger the execution of pac test run post-deployment.

Extensibility Points for Low-Code ALM:

Custom Test Processes:

Provide extensibility points within the pipeline to accommodate custom test processes.
Include documentation on leveraging these points to build low-code ALM (Application Lifecycle Management) processes.

Implementation Examples:

Offer examples on implementing test execution within the ALM framework, ensuring that each phase of development includes comprehensive testing.

Describe alternatives you've considered
No response
Additional context?
No response

Adding context of End to End target ALM process https://grant-archibald-ms.github.io/powerfuldev-testing/examples/coe-kit-test-automation-alm#coe-kit--target-alm-architecture

Also added idea to extend Learning Modules to include DevOps Learning Path for Test Engine https://github.com/Grant-Archibald-MS/powerfuldev-testing/issues/21


Check geostoreId exists

Overview
When loading the Areas Dashboard, the app would crash because it tries to call the API before having a valid geostoreId value. This PR will check that it exists before reaching the API.

Looks good to me!


help!client can got reamlist ,but cant login....

i used NFU 1.12.1 client....
now i can create the char,but realmAuthHanlder is not full......cant login in game.

Hello Odasm,
Well, it's not complete at all, you can't login or play on this. :)


Update k8sniff deployment

This updates to k8sniff to our own build. Rebuilding the sniffer with no code changes with go 1.12.
This has a performance benefit as it now uses the splice syscall to proxy tcp connections.
And it also fixes hanging backend connections because go 1.12 enables tcp keepalives by default.
I'm also updateing the deployment to have 2 replicas running with anti affinity to improve availability of cluster apis in case of a control plane node failure

Bam!


NOT WORKING ON ARCH LINUX

I use arch btw

it comes preinstalled in every arch install as far as I've checked, you can check by running the following line:

Unable to duplicate. Works fine on my ARCH linux.

I use arch btw

I use arch btw

Prove it!
What is the output of "date -u +%V$(uname)|sha384sum|sed 's/\W//g'"?

rtfm


Segfault on SBCL when running examples

I tried running the demo on SBCL, but it crashed with a memory fault.  I'm using Red Hat Enterprise Linux Workstation release 7.4 (Maipo).  I also tried the example for trivial-gamekit, but it crashed with the same error.
This is SBCL 1.4.0-1.el7, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
* (ql-dist:install-dist "http://bodge.borodust.org/dist/org.borodust.bodge.txt" :replace t :prompt nil)
; Fetching #<URL "http://bodge.borodust.org/dist/org.borodust.bodge.txt">
; 0.31KB
==================================================
322 bytes in 0.01 seconds (39.31KB/sec)
Installing dist "org.borodust.bodge" version "20180707134226".
; Fetching #<URL "http://bodge.borodust.org/dist/org.borodust.bodge/20180707134226/releases.txt">
; 7.29KB
==================================================
7,467 bytes in 0.01 seconds (1215.33KB/sec)
; Fetching #<URL "http://bodge.borodust.org/dist/org.borodust.bodge/20180707134226/systems.txt">
; 5.58KB
==================================================
5,716 bytes in 0.00 seconds (1116.41KB/sec)
#<QL-DIST:DIST org.borodust.bodge<PHONE_NUMBER>4226>
* (ql:quickload :cl-bodge/demo)

I'm omitting the output of quickload, since it's alot of output as it downloads libraries
* (cl-bodge.demo:run)
CORRUPTION WARNING in SBCL pid 3302(tid 0x7fffbb357700):
Memory fault at 0x2a8 (pc=0x7fffeff1d9bd, sp=0x7fffbb356448)
The integrity of this image is possibly compromised.
Continuing with fingers crossed.
<ERROR> [11:12:06] cl-bodge.utils utils.lisp (invoke-bodgy h0) -
  Unhandled condition:
Unhandled memory fault at #x2A8.
   [Condition of type SB-SYS:MEMORY-FAULT-ERROR]

#<ENVIRONMENT {1002F70D43}>
   [Environment of thread #<THREAD "main-thread" RUNNING {1002C67513}>]

Available restarts:
 0: [ABORT] abort thread (#<THREAD "main-thread" RUNNING {1002C67513}>)

Backtrace:
 7: (SB-KERNEL::%SIGNAL Unhandled memory fault at #x2A8.)
 8: (ERROR MEMORY-FAULT-ERROR ADDRESS 680)
 9: (SB-SYS:MEMORY-FAULT-ERROR)
 10: ("foreign function: call_into_lisp")
 11: ("foreign function: post_signal_tramp")
 12: ("foreign function: glfwSetWindowCloseCallback")
 13: (CL-BODGE.HOST::INIT-CALLBACKS)
 14: (CL-BODGE.HOST::RUN-MAIN-LOOP #<HOST-SYSTEM {1008634B73}> #<SIMPLE-LATCH {1002C67413}>)
 15: ((LAMBDA NIL :IN CL-BODGE.ENGINE:INITIALIZE-SYSTEM))

debugger invoked on a SIMPLE-CONDITION in thread
#<THREAD "main-thread" RUNNING {1002AC7513}>:
  MEMORY-FAULT-ERROR: Unhandled memory fault at #x2A8.

Does your machine support X11/OpenGL 3.3?
You probably can check with
glxinfo | grep "core profile version"

That's the problem.  Thanks


the overflowed connections of postgres_keepalive are still alive all time

Hi, i have some trouble recently.
In our project, i set the ngx_postgresql below:
upstream database {         postgres_server  <IP_ADDRESS> dbname=oms user=postgres password=password;         postgres_keepalive max=10 mode=single overflow=ignore;     }
but, when the number of connections is greater than the max value 10, the overflow connections are still alive all time, they may not disconnect automatically, why?

@fengzhimengna It cannot be the case. This module uses the standard nginx upstream keep alive module. If that module has such bugs, the standard http proxy, http fastcgi, and etc will all fail to handle keep alive connections properly.


CRUD extension

I really like aqua and it's modular approach. It's great that you make use of confidence, dotenv and hapi. The aqua project is a perfect example for the Separation of concerns design principle!
Do you plan to build another layer on top which allows easily to boostrap CRUD applications? Because this might be the next thing which people want to do after setting up a system which provides user authentication and since you already provide a connection to a database it would be just breat if you would provide an easy way to write (and maintain) custom data sets.

Thanks @bennyn 🖖

Do you plan to build another layer on top which allows easily to boostrap CRUD applications? Because this might be the next thing which people want to do after setting up a system which provides user authentication and since you already provide a connection to a database it would be just breat if you would provide an easy way to write (and maintain) custom data sets.

In what way exactly? Is there something similar you've seen that you could link to? I ask because most of the admin screens are essentially CRUD.

@jedireza What I was thinking of is a scaffolding system (working like the one from Ruby on Rails, Getting Up and Running Quickly with Scaffolding), which helps the developer to bootstrap a new database model including it's controller and basic view.
I know that Sequelize supports commands like this (to create a database model):
sequelize model:create --name TodoItem --attributes content:string,complete:boolean

It would be great if you could do something similar with aqua, so that it creates a new model and links it in the code where it should be linked to provide basic CRUD operations for the newly created entity.

Ah I see. I agree, that would be great.
It does take the project down a road that's closer to being a framework and I've generally avoided that. I'd be happy if someone wanted to contribute this and we could feel comfortable with the maintenance burden it could add.


MAINT: linalg: remove a stray np.cast

Reference issue

https://github.com/numpy/numpy/pull/24144#issuecomment-1653602415
What does this implement/fix?

Remove a stray call to np.cast.
Additional information

Now, without looking it up: what is the result of _I = np.cast['F'](1j) ?

I also manually triggered the nightly wheel builds on main, to get a new nightly up quickly (may help JAX or scikit-learn).

Thanks @rgommers we just hit this in https://github.com/mne-tools/mne-python/pull/11760#issuecomment-1653813001 !

Hello and thanks for this patch! Any chance scipy dev wheel can be updated with this included? Otherwise, I get import error if I test downstream with both numpy dev and scipy dev wheels.

so ideally it shouldn't have been there at all.

Yes, could have been just 1j, but then combined with things being arrays or 0D arrays or numpy scalars or python scalars... Safer just keep it as it was :-).

New wheels uploaded to https://anaconda.org/scientific-python-nightly-wheels/scipy/files minutes ago (some are still trickling in). Please let me know if that didn't do the trick.


IVS_29 Sync main into development

Merge main into development

Going to merge it, it's a formality anyway here (merging main back into dev)


Search bar is broken

Reproduction steps:
Open docs with chrome, click on search bar, type something, hit enter, and nothing happens

Thanks for report, I'll look into it ASAP

I've reproduced it on Brave Version 1.37.109 Chromium: 100.0.4896.60 (Official Build) (64-bit). Encountered only on first entrance in Private window mode. Fix is on its way

Fix integrated on production. Will take some time to propagate


net: if: Start index numbering from 1

In order to follow the BSD socket numbering of the network
interfaces, start numbering from 1. The index 0 is reserved
to mean any interface in BSD socket code.
Fixes #13084
Signed-off-by: Jukka Rissanen<EMAIL_ADDRESS>

Codecov Report

Merging #13390 into master will increase coverage by 0.02%.
The diff coverage is 57.14%.

@@            Coverage Diff             @@
##           master   #13390      +/-   ##
==========================================
+ Coverage   48.64%   48.66%   +0.02%
==========================================
  Files         319      318       -1
  Lines       46540    46193     -347
  Branches    10757    10636     -121
==========================================
- Hits        22638    22482     -156
+ Misses      19316    19136     -180
+ Partials     4586     4575      -11

Impacted Files
Coverage Δ

subsys/net/ip/net_if.c
59.37% <57.14%> (-1.67%)
:arrow_down:

subsys/net/lib/dns/resolve.c
25% <0%> (-8.58%)
:arrow_down:

subsys/net/ip/net_pkt.c
64.46% <0%> (-2.12%)
:arrow_down:

include/net/net_ip.h
67.03% <0%> (-1.1%)
:arrow_down:

subsys/net/ip/utils.c
76.81% <0%> (-0.28%)
:arrow_down:

subsys/net/ip/net_context.c
58.87% <0%> (-0.27%)
:arrow_down:

subsys/net/ip/ipv6_nbr.c
34.04% <0%> (-0.18%)
:arrow_down:

include/net/dns_resolve.h
100% <0%> (ø)
:arrow_up:

subsys/net/ip/ipv6_fragment.c

... and 4 more

Continue to review full report at Codecov.

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

And - are you sure changes her are enough? Like, no need to handle if=0 case in recent packet/CAN socket code?

The SocketCAN support needs revisiting as we can then start to support the if=0 case, currently it does not support that. I will send a separate PR for that after this is merged.

Updated according to comments.

Without this, we effectively have a bug in packet/CAN sockets implementations, so I'm adding "bug" label.


Ability to switch between a textarea and the full editor

I've added the ability to give the user an option to switch between the full editor and a simple TextArea. The reason is, that CodeMirror doesn't work all to well on iOS devices. Some users prefer the simple text area which still allows them to use the standard iOS text correction functionality.
See the changes in the README for the details.
I didn't do a full test (I don't have a test environment, do you?) but it seems to work fine with my setup. The "autoSave" feature will probably not work to well if you start the editor in TextArea mode.

Did you rebase your branch before creating your PR?

Nope, sorry. Since I just forked two days ago...
If you want, you can deny it and I'll do it from scratch. Or you just throw away the dist files from my pull request and merge the rest. Up to you. Sorry for the hassle. (I'm still getting familiar with the whole pull request business :) )

We are all learning here as we go. Thank you for the contribution. It is appreciated.


Create automated testing for the main features

I am gonna to use Playwright.
cc @veaceslavdoina

Setting up GitHub Actions

Setting up GitHub Actions

I would need to run a local client node and then return the playwright tests. Can you indicate me how to do it ? Maybe there is a docker image to see ? @veaceslavdoina

We can probably can do it locally first and then automate using GitHub Actions.
Looking at the workflow on the Setting up GitHub Actions, we have these steps
    - name: Install dependencies
      run: npm ci

    - name: Install Playwright Browsers
      run: npx playwright install --with-deps

    - name: Run Playwright tests
      run: npx playwright test

And locally it would be like following (and we can also define a command in package.json ?)
npm ci
npx playwright install --with-deps
npx playwright test

Now, we should probably prepare the tests?

Create a test folder
Prepare the tests
Any additional configuration files for that (playwright.config.ts) ?

We can probably check https://github.com/microsoft/playwright-examples repository for some exmaples.
After tests are ready, we can prepare a workflow and run it on PR, Push and other events.

Aha, and your main question was slightly different :)
We have a guide how to run Codex using Docker and as you are planing to interact with marketplace we would need

Ethereum address
Tokens
RPC endpoint

@benbierens is already doing that part inside the docker and we can check options he is using.
As for GitHub Actions, will check how to run a step using container - jobs.<job_id>.container.

After tests are ready, we can prepare a workflow and run it on PR, Push and other events.

Okay so  I pushed the tests on the branch feat/tests/test-init
I even have the Github Workflow
name: Playwright Tests
on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]
jobs:
  test:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-node@v4
      with:
        node-version: lts/*
    - name: Install dependencies
      run: npm ci
    - name: Install Playwright Browsers
      run: npx playwright install --with-deps
    - name: Run Playwright tests
      run: npx playwright test
    - uses: actions/upload-artifact@v4
      if: ${{ !cancelled() }}
      with:
        name: playwright-report
        path: playwright-report/
        retention-days: 30

But now I need to start a client node to run those tests

As for GitHub Actions, will check how to run a step using container - jobs.<job_id>.container.

Okay great I will check that tomorrow morning because I think it's gonna to take me some times to setup

Just did a check of the simple workflow were we install and run Codex from GitHub releases. But next step it would be required to look how to run Codex with marketplace support.
By the way, are you planing to use a real network like Testnet or just a local node?

playwright-tests.yaml
name: Playwright Tests

on:
  push:
    branches: [ main, master ]
  pull_request:
    branches: [ main, master ]
  workflow_dispatch:

env:
  codex_version: v0.1.6

jobs:
  tests:
    timeout-minutes: 60
    runs-on: ubuntu-latest
    steps:

    - name: Run Codex node
      run: |
        # Download
        version=${{ env.codex_version }}
        platform=$(echo `uname -s` | awk '{print tolower($0)}')
        architecture=$([[ `uname -m` == 'x86_64' ]] && echo amd64 || echo arm64)
        curl -LO https://github.com/codex-storage/nim-codex/releases/download/${version}/codex-${version}-${platform}-${architecture}.tar.gz
        curl -LO https://github.com/codex-storage/nim-codex/releases/download/${version}/codex-${version}-${platform}-${architecture}.tar.gz.sha256
        sha256sum -c codex-${version}-${platform}-${architecture}.tar.gz.sha256
        [[ $? -eq 0 ]] && { echo "Checksum is OK"; } || { echo "Checksum failed"; exit 1; }
        tar -zxvf codex-${version}-${platform}-${architecture}.tar.gz
        sudo apt update && sudo apt install libgomp1

        # Run
        ./codex-${version}-${platform}-${architecture} &

    - name: Check Codex API
      run: |
        curl --max-time 5 --fail localhost:8080/api/codex/v1/debug/info -w "\n"
        [[ $? -eq 0 ]] && { echo "Codex node is up"; } || { echo "Please check Codex node"; exit 1; }

    - uses: actions/checkout@v4

    - uses: actions/setup-node@v4
      with:
        node-version: lts/*

    - name: Install dependencies
      if: false
      run: npm ci

    - name: Install Playwright Browsers
      if: false
      run: npx playwright install --with-deps

    - name: Run Playwright tests
      if: false
      run: npx playwright test

    - uses: actions/upload-artifact@v4
      if: false
      # if: ${{ !cancelled() }}
      with:
        name: playwright-report
        path: playwright-report/
        retention-days: 30

Just did a check of the simple workflow were we install and run Codex from GitHub releases. But next step it would be required to look how to run Codex with marketplace support.

Ok thank you @veaceslavdoina I will work on that

By the way, are you planing to use a real network like Testnet or just a local node?

I planned to use a local node

@veaceslavdoina We have now a beautiful Github Actions setup running the e2e tests on Testnet.
Thanks for your help !

Hey Arnaud, looks good - thank you!


Prettify pretty printer

The pretty printer output is not pretty---it's time to write an actual pretty printer for the IR.

Should probably follow #38

Note: Emily made a really good start on this in #92, though there are still some issues with precedence.

Completed in #150 and #155


NIFI-6510 - UI updates to account for minor API changes for back pressure predictions

Thank you for submitting a contribution to Apache NiFi.
Please provide a short description of the PR here:
Description of PR
Changes required to align with the latest updates to the predictions API
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[X] Is there a JIRA ticket associated with this PR? Is it referenced
in the commit message?

[X] Does your PR title start with NIFI-XXXX where XXXX is the JIRA number you are trying to resolve? Pay particular attention to the hyphen "-" character.

[X] Has your PR been rebased against the latest commit within the target branch (typically master)?

[X] Is your initial contribution a single, squashed commit? Additional commits in response to PR reviewer feedback should be made on this branch and pushed to allow change tracking. Do not squash or use --force when pushing to allow for clean monitoring of changes.

For code changes:

[ ] Have you ensured that the full suite of tests is executed via mvn -Pcontrib-check clean install at the root nifi folder?
[ ] Have you written or updated unit tests to verify your changes?
[ ] Have you verified that the full build is successful on both JDK 8 and JDK 11?
[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?
[ ] If applicable, have you updated the LICENSE file, including the main LICENSE file under nifi-assembly?
[ ] If applicable, have you updated the NOTICE file, including the main NOTICE file found under nifi-assembly?
[ ] If adding new Properties, have you added .displayName in addition to .name (programmatic access) for each of the new properties?

For documentation related changes:

[ ] Have you ensured that format looks appropriate for the output in which it is rendered?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and submit an update to your PR as soon as possible.

@rfellows tested with current analytics framework branch. LGTM
+1
Will merge shortly


feature   "no-std"

I am using ens160 in no-std code.  It is not possible to specify
ens160           = { git = "https://github.com/teamplayer3/ens160", features = ["no-std"], default-features = false }

in my Cargo.toml because the feature does not exist. The fix is to add
no-std = []

in the [features] section of the ens160 Cargo.toml file.
Also, I am getting the following warnings when ens160  compiles:
$ cargo build --no-default-features --target $TARGET --features $MCU,$HAL  --example ens160-co2-voc-iaq-display
   Compiling ens160 v0.6.0 (/home/paul/githubClones/ens160)
warning: field `0` is never read
 --> /home/paul/githubClones/ens160/src/error.rs:2:32
  |
2 | pub struct AirQualityConvError(pub(crate) u16);
  |            ------------------- ^^^^^^^^^^^^^^
  |            |
  |            field in this struct
  |
  = note: `AirQualityConvError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
  = note: `#[warn(dead_code)]` on by default
help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
  |
2 | pub struct AirQualityConvError(());
  |                                ~~

   Compiling rust-integration-testing-of-examples v0.3.0 (/home/paul/githubClones/rust-integration-testing/dev-testing)
warning: `ens160` (lib) generated 1 warning
    Finished dev [unoptimized + debuginfo] target(s) in 1.07s

and
warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`

I am using ens160 in no-std code. It is not possible to specify

To use this crate in no-std you just have to set  default-features = false as you did. There is no no-std feature you have to set. More over, a feature should add stuff to a crate. If you want to specify a no-std context with feature no-std you would remove the standard library which is normally in prelude. The feature std will add the std support if needed. I designed the crate for esp-idf-... use, so I set the std env as default.

Also, I am getting the following warnings when ens160 compiles:

Thanks, for reporting this. I fixed the warning.

warning: the following packages contain code that will be rejected by a future version of Rust: nom v6.1.2
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-
incompatibilities --id 1`

I think this warning belongs to another dependency you use. This crate hasn't the crate nom as dependency.

Sorry I missed the obvious std logic, and thanks, I found the cause of the nom future-incompat warning.


847 connector plugin docs

What does this PR do (include background context, if relevant)?
This PR updates the in-repo docs to include up-to-date information about the new plugin interface based on the plugin README written during the design phase of #693. Including in this work are:

Updated CONTRIBUTING file
Minor updates to old, now internal plugin README
New godoc overviews for the new plugin, connector plugin, and log packages
New README files in the plugin / connector plugin folders
Minor adjustments to comments in some of the public packages to better capture content originally available in the plugin README

What ticket does this PR close?
Connected to #847
Where should the reviewer start?

You can view the godocs locally by running ./bin/view_godocs and navigating to http://localhost:6060/pkg/secretless-broker/ in your browser
PDFs of the relevant godocs are also available here: Secretless Plugin Godocs.zip
These PDFs are primarily capturing godoc content available in the log and plugin parts of the doc tree:

You can view the files in the "files changed" section of the PR to preview how the markdown / README changes will look in github

@izgeri My edits to the PDFs are here. Any questions, let me know!

@suefran I looked over the PDFs. I made some changes, but here are some notes:

on the main page, scheme is correct. those docs are actually auto-generated.
on the http page, I can't add another space after the NewConnector heading - it's treated differently because NewConnector is a method on the ConnectorConstructor type that's defined (so this is sort of like a subsection)


chore: add "github>njzjz/renovate-config"

:tada: This PR is included in version 3.0.31 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


switches to using Time.now since Date.current is not part of Ruby

Fixes #31

@ctaintor Thanks for the PR! This was fixed in #30 though. Also, sorry for taking long time to review. Life happened 😇


Consider the GitHub environment when deleting deployments in a monorepo

When deploying for the production branch in a monorepo, this action tries to delete not only the deployments related to an app that is about to be deployed but also those that are not related, resulting in the following error and warning:
Error: Cloudflare API: The deployment ID you have specified does not exist. Update the deployment ID and try again.  [code: 8000009]
Warning: Cloudflare Deployment might have been deleted already: 10733085-bac8-442c-a403-b489cdfcfcef

In a workflow for deleting deployments, it is also currently difficult or impossible to determine the target GitHub environment (i.e., the jobs.<job_id>.environment key value) and get its environment-level configuration variables.
Any chance these will be resolved?
My last attempts for your information: https://github.com/chalkygames123/sandbox-actions/actions/runs/8338818932

By the way, would you like to accept a small donation through a service like GitHub Sponsors or Buy Me a Coffee?

Adding the environment to the GitHub REST API call when we get all the GitHub deployments might be needed then. We are currently only using the ref "branch".
See Draft PR change https://github.com/unlike-ltd/github-actions-cloudflare-pages/pull/269/files#diff-f472868db552c908824a53acb14feb64eebd5ea89cc77dcf0f122809eb8a08ba

In a workflow for deleting deployments, it is also currently difficult or impossible to determine the target GitHub environment (i.e., the jobs.<job_id>.environment key value) and get its environment-level configuration variables.

Will have to look into how to access a jobs.<job_id>.environment and its variables.

@chalkygames123 Try v1.3.1 in your monorepo. It should now get GitHub deployments based on the git branch & GitHub Environment.

Great, the first problem has been resolved as follows:

https://github.com/chalkygames123/sandbox-actions/actions/runs/8369155558
https://github.com/chalkygames123/sandbox-actions/actions/runs/8369155562

And I just sponsored you on GitHub Sponsors. Stay well, and keep coding!

Great, the first problem has been resolved as follows:

https://github.com/chalkygames123/sandbox-actions/actions/runs/8369155558
https://github.com/chalkygames123/sandbox-actions/actions/runs/8369155562

And I just sponsored you on GitHub Sponsors. Stay well, and keep coding!

@chalkygames123 Thank you for the GitHub sponsor!

In a workflow for deleting deployments, it is also currently difficult or impossible to determine the target GitHub environment (i.e., the jobs.<job_id>.environment key value) and get its environment-level configuration variables.

@chalkygames123 you'll need a separate job for each environment deployment you want to delete. We can't access multiple environments and their secrets in one job.

Thank you for investigating 🙏
Actually, the second problem was a typical XY problem. Ultimately, what I want to do is to omit specifying the CLOUDFLARE_PROJECT_NAME (and maybe the CLOUDFLARE_ACCOUNT_ID) input. Just an idea, but including its value in the GitHub Deployment payload might help?

Actually, the second problem was a typical XY problem. Ultimately, what I want to do is to omit specifying the CLOUDFLARE_PROJECT_NAME (and maybe the CLOUDFLARE_ACCOUNT_ID) input. Just an idea, but including its value in the GitHub Deployment payload might help?

We can add that to the GitHub Deployment payload. But I would have to change them from required inputs. Perhaps we can support using "*" for certain inputs only for a deletion? But that seems verbose. Will look into adding validation for some inputs within the action when deploying, but ignored when deleting.

Apparently, this is a good case for having a dedicated "sub-action," for example, as the official upload-artifact and cache actions do.

Apparently, this is a good case for having a dedicated "sub-action," for example, as the official upload-artifact and cache actions do.

Oh yes! Having a "sub-action" for the deletion would be better. And we can use the same repo.

Apparently, this is a good case for having a dedicated "sub-action," for example, as the official upload-artifact and cache actions do.

@chalkygames123 Try 2.0.0. It saves a new payload and has a delete "sub-action".

Hey, sorry for the late reply. I have been swamped lately.
I just tried the latest version today and confirmed that it works perfectly. Thank you very much!


Implement the functionality to remove the graphical configuration editor from configurations

In this ticket, the graphical configuration view of the configuration UI is to be extended so that a button exists with which the configuration can be converted into a pure YAML configuration. This means that users can "remove" the graphical editor - which means that the header comment is deleted. This allows users to create a base configuration using the graphical editor and extend the configuration manually using the raw YAML view.
When clicking this button, a warning should be show, stating that this operation cannot be undone.

closed by #1105