refreshes ContactInfo.outset before initializing validator

Problem
Nodes join gossip during bootstrap process with a stub contact-info which in particular has invalid TVU socket address.
Once the bootstrap is done they re-join gossip a 2nd time with a fully populated contact-info, but this contact-info has an outset timestamp older than the 1st one because it was initiated earlier.
In v2.0, the outset timestamp determines which contact-info overrides the other, so the v2.0 nodes refrain from updating their CRDS table with the fully initialized contact-info.
Summary of Changes
The commit refreshes ContactInfo.outset before initializing validator so that it overrides the one pushed to gossip by the bootstrap stage.

Hey @steviez @gregcusack, we'll need approval from a subject matter expert in addition to the backport reviewers.

curious what the testing process for this will be if we backport a commit to v1.18 which has been running on mainnet for some time now.

I hope we get enough soak time on testnet and mainnet before proceeding with v2.0 upgrade.

We can adjust the upgrade schedule as needed. How much time would you want this to run on each cluster?
The original plan was to do some quick upgrade/downgrade cycles on testnet, and then start ramping v2.0 on mainnet-beta. Something like this:
Testnet, over the course of ~2-4 days:

Restart on v1.18
Upgrade live to v2.0
Downgrade live to v1.18
Upgrade to v2.0

Mainnet-beta:

Ask for volunteers to take 10% of stake to v2.0
1 week after #1: ask for volunteers to take 25% of stake to v2.0
1 week after #2: Recommend v2.0 for general adoption

If we publish a new v1.18 release with this change most mainnet-beta operators will ignore it unless we tell them it's a critical patch. As I understand it, this problem only manifests if there's a restart while the cluster is split v1.18 / v2.0. So we could recommend v1.18.26, for mainnet-beta, but only push it as a critical patch if we happen to have a restart during the upgrade. Is that correct?

Without this patch, if some v1.18 node decides to restart and runs the bootstrap code, then v2.0 nodes will pick up its stub contact-info from bootstrap and stick to it, in which case the node will be effectively left out of cluster because the stub contact-info only has a gossip address.
So I would say it is still much safer if nodes upgrade to this code before more stake is running v2.0 branch.

been thinking if this is going to cause any issues for v1.18. I don't think it will.
v1.18 uses ContactInfo for startup in rpc_bootstrap(), but then really relies on LegacyContactInfo for communication with the rest of the cluster. It's really just sending and accepting ContactInfo in the background.
With the upgrade to v2, now v1.18 needs ContactInfo to communicate with v2, since v2 doesn't use LegacyContactInfo for much. v2 has an override check that v1.18 does not have that looks at ContactInfo.outset, which is why if a v2 node receives an outset older than the current one, the new value will fail to override.

Devnet testing succeeded:
https://discord.com/channels/428295358100013066/1293704291437121537/1294175307162451988
The v2.0 version of this patch (#2681) went into v2.0.7 which was announced for testnet on 2024-08-25, and then used for the testnet restart on 2024-08-26
@anza-xyz/backport-reviewers Any other testing you'd like to see here?

PS C:\Users\dell\Downloads> .\solana-install-init-x86_64-pc-windows-msvc.exe v1.18.6
Error: Unable to extract "C:\Users\dell\AppData\Local\Temp\.tmp4jt6zO\download" to "C:\Users\dell\.local\share\solana\install\releases\1.18.6": failed to iterate over archive
Press the Enter key to continue.
PLS  i want to install Solana CLI but i need to entre key for fontinue .??


Ignore duplicate content changes

In the event that notifications#create times out the client apps may retry the request despite it having already made it through.
This PR returns a conflict if there is already a ContentChange stored with the same base_path, content_id and public_updated_at. Assuming we agree these are a reasonable indicator of duplicate-ish-ness we should add this as a validation on ContentChange and a DB constraint but while we need to also prevent Govdelivery calls this is easier to handle in the controller for now.
We'll also need to clean up the data before adding a DB constraint as there are already duplicates in there.

Probably already on your radar but we'll need to make sure email-alert-service can handle this gracefully.


Installation

Given that all the instructions are using CLI tools, installation instruction should mention that the quickest way to install it is via a command line using chocolatey.

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

ID: 78bafe84-4e50-785c-b4f6-e629127a80a9
Version Independent ID: 34e5924e-2d7e-3bf2-0992-78eb59463a6a
Content: Install and configure Terraform for use with Azure
Content Source: articles/virtual-machines/linux/terraform-install-configure.md
Service: virtual-machines-linux
GitHub Login: @echuvyrov
Microsoft Alias: echuvyrov

@Leon99 Thanks for your feedback.
Chocolatey is a nice package manager for Windows. I think If we provide a particular installation method for windows, We need to provide for all Linux Distros also. I am sure Terraform will have them on their document.
I have assigning this issue to the content author to investigate further and update the document as appropriate.

@echuvyrov please provide your comments

thanks @Leon99 for contributing and I agree with @jakaruna-MSFT: this article, which is the earliest article of the batch on Terraform, tries to generalize both Linux and Windows install/configuration. I think some food for thought for us would be to evaluate and give more attention to working with Terraform on Windows, including mentioning chocolatey as well as creating Windows-specific configuration for a quick start.
@TomArcherMsft - thoughts?

Sorry about not seeing this email. I don't have a problem with this suggestion and will confirm with the engineering team to get their thoughts.

@Leon99 @echuvyrov As this is not a tested scenario, it's not something we document.
#please-close


How to make it work with an inner container that has overflow auto?

For reference, here is a codesandbox.
I have a div, which has content that is bigger than the div's size. Therefore I made it scrollable using overflow: auto. My question is, how can I track this divs scroll position?
I tried doing this:
export default function App() {
  const divRef = useRef();
  useScrollPosition(
    ({ currPos }) => {
      console.log(currPos); // never logs out, cause scroll progress of `div` isn't tracked
    },
    [],
    divRef,
    false,
    300
  );

  return (
    <div className="App">
      <div
        ref={divRef}
        style={{
          backgroundColor: "blue",
          overflowY: "auto",
          padding: "5px",
          height: "300px"
        }}
      >
        <div
          style={{
            backgroundColor: "red",
            height: "2000px"
          }}
        />
      </div>
    </div>
  );
}

But this ref approach doesn't work. Any help would be super appreciated!

Is it me, or does this hook not work at all for target elements that aren't the window?
It doesn't fire at all unless the main document element is scrolling, regardless of the ref passed in.

Is it me, or does this hook not work at all for target elements that aren't the window?
It doesn't fire at all unless the main document element is scrolling, regardless of the ref passed in.

Yep, this is due to getBoundingClientRect(). I think scrollTop should be used instead.

Is it me, or does this hook not work at all for target elements that aren't the window?
It doesn't fire at all unless the main document element is scrolling, regardless of the ref passed in.

Yep, this is due to getBoundingClientRect(). I think scrollTop should be used instead.

I've run into the same issue. Looks like scrollTop needs to be used, as well as addEventListener for "scroll" needs to be called on the element instead of window

Did anyone get this to work? I'm passing ref from a parent component and wont to detect scroll. But I get nothing when I do this:
        useScrollPosition(({ prevPos, currPos }) => {             console.log("scrolling");         }, [visibleFilterResultButton], props.forwardedRef);

Still no luck. I had this terms n conditions page which is set under overflow: auto
The purpose is to detect scroll till end of that component and enable accept button.
Since this is a normal use-case, @n8tb1t Any take on this?

am i missing something? i can't find any working example for how to use this with an element ref.

am i missing something? i can't find any working example for how to use this with an element ref.

I am in the same boat...can't seem to get anything to work when the scrolling element is anything other than the window.

@joebochill here's my modified version that works for containers. usage example at the bottom.
/**
 * useScrollPosition.js
 */

import React from 'react';

const isBrowser = typeof window !== `undefined`;
const zeroPosition = { x: 0, y: 0 };

const useIsomorphicLayoutEffect = typeof window !== 'undefined'
  ? React.useLayoutEffect
  : React.useEffect;

const getScrollPosition = (element) => {
  if (!isBrowser || element === null || element === void 0) {
    return zeroPosition;
  }
  return {
    x: element.current.scrollLeft,
    y: element.current.scrollTop
  };
};

const getScrollProps = (element) => {
  if (!isBrowser || element === null || element === void 0) {
    return {
      top: false,
      bottom: false,
      scrollable: false
    };
  }
  return {
    top: element.current.scrollTop === 0,
    bottom: (element.current.clientHeight + element.current.scrollTop) === element.current.scrollHeight,
    scrollable: element.current.scrollHeight > element.current.clientHeight
  };
};

const resizeSensor = (element, callback) =>
{
    let zIndex = parseInt(getComputedStyle(element));
    if(isNaN(zIndex)) { zIndex = 0; };
    zIndex--;

    let expand = document.createElement('div');
    expand.style.position = "absolute";
    expand.style.left = "0px";
    expand.style.top = "0px";
    expand.style.right = "0px";
    expand.style.bottom = "0px";
    expand.style.overflow = "hidden";
    expand.style.zIndex = zIndex;
    expand.style.visibility = "hidden";

    let expandChild = document.createElement('div');
    expandChild.style.position = "absolute";
    expandChild.style.left = "0px";
    expandChild.style.top = "0px";
    expandChild.style.width = "10000000px";
    expandChild.style.height = "10000000px";
    expand.appendChild(expandChild);

    let shrink = document.createElement('div');
    shrink.style.position = "absolute";
    shrink.style.left = "0px";
    shrink.style.top = "0px";
    shrink.style.right = "0px";
    shrink.style.bottom = "0px";
    shrink.style.overflow = "hidden";
    shrink.style.zIndex = zIndex;
    shrink.style.visibility = "hidden";

    let shrinkChild = document.createElement('div');
    shrinkChild.style.position = "absolute";
    shrinkChild.style.left = "0px";
    shrinkChild.style.top = "0px";
    shrinkChild.style.width = "200%";
    shrinkChild.style.height = "200%";
    shrink.appendChild(shrinkChild);

    element.appendChild(expand);
    element.appendChild(shrink);

    const setScroll = () =>
    {
        expand.scrollLeft = 10000000;
        expand.scrollTop = 10000000;

        shrink.scrollLeft = 10000000;
        shrink.scrollTop = 10000000;
    };
    setScroll();

    let size = element.getBoundingClientRect();
    let currentWidth = size.width;
    let currentHeight = size.height;

    const onScroll = () =>
    {
        let size = element.getBoundingClientRect();

        let newWidth = size.width;
        let newHeight = size.height;

        if(newWidth !== currentWidth || newHeight !== currentHeight)
        {
            currentWidth = newWidth;
            currentHeight = newHeight;

            callback();
        }

        setScroll();
    };

    const cleanup = () => {
      expand.removeEventListener('scroll', onScroll);
      shrink.removeEventListener('scroll', onScroll);
    }

    expand.addEventListener('scroll', onScroll);
    shrink.addEventListener('scroll', onScroll);

    return cleanup;
};

export default function useScrollPosition(callback, deps, element, wait) {
  const resizeCleanup = React.useRef();
  const position = React.useRef(zeroPosition);
  const throttleTimeout = React.useRef(null);
  const [callbackState] = React.useState(() => callback);

  const localCallback = React.useCallback(() => {
    const currPos = getScrollPosition(element);
    const scrollProps = getScrollProps(element);
    callbackState({
      prevPos: position.current,
      currPos,
      isTop: scrollProps.top,
      isBottom: scrollProps.bottom,
      isScrollable: scrollProps.scrollable
    });
    position.current = currPos;
    throttleTimeout.current = null;
  }, [element, callbackState]);

  React.useLayoutEffect(() => {
    localCallback();
  }, [localCallback]);

  useIsomorphicLayoutEffect(() => {
    if (!isBrowser) {
      return undefined;
    }

    const handleScroll = () => {
      if (wait) {
        if (throttleTimeout.current === null) {
          throttleTimeout.current = setTimeout(localCallback, wait);
        }
      }
      else {
        localCallback();
      }
    };

    if (element && element.current !== null && element.current !== void 0) {
      element.current.addEventListener('scroll', handleScroll, { passive: true });
      resizeCleanup.current = new resizeSensor(element.current, handleScroll);
    }

    return () => {
      if (element && element.current !== null && element.current !== void 0) {
        element.current.removeEventListener('scroll', handleScroll, { passive: true });
      }

      if (resizeCleanup.current) {
        resizeCleanup.current();
      }

      if (throttleTimeout.current) {
        clearTimeout(throttleTimeout.current);
      }
    };
  }, deps);
};

usage - you need a ref to the container:
  useScrollPosition(
    ({ currPos, prevPos, isTop, isBottom, isScrollable }) => {
      console.log('scroll info', currPos, prevPos, isTop, isBottom, isScrollable);
    },
    [],
    scrollRef,
  );

@jpodpro thanks for the reply. Your version works great in a minimum reproduction (https://codesandbox.io/s/little-snow-0kush), but it's not working in my application...which makes me think I'm probably doing something else wrong unrelated 🤦 Time to do some more digging.

@joebochill interesting. i currently use this in production with no problems and i didn't think there was much involved in making it work. perhaps look into the dependencies array if there's something that is being updated in order to fully layout your container.

In my case, I'm not using it within the same component where the ref is defined (I have another component 'B' that responds to the scroll position of component 'A'): https://codesandbox.io/s/sharp-heyrovsky-iycwi?file=/src/ComponentB.js
I'm running into the issue where the ref is null on the first render and when ref.current get's updated, it doesn't trigger a redraw on component B, so it stays null forever or until something else triggers a re-render.

any updates guys? I'm stuck :(

I am stuck on this issue too. Can't get it work with a custom auto-scrolling element 🧐

Sorry I can't be much help. We ended up going in a different direction and writing our own scroll listeners based on the guide here https://www.benmarshall.me/attaching-javascript-handlers-to-scroll-events/.
Here's an excerpt of what we did in our component 'B' (the one responding to the scroll events):
const scrollElement = props.scrollContainerId ? document.getElementById(props.scrollContainerId) : null;
const scrollTop = scrollElement ? scrollElement.scrollTop : window.scrollY;

// offset is where we store the current scroll position of the scrollable component
const [offset, setOffset] = useState(0);

const [scrolling, setScrolling] = useState(false);
const [animating, setAnimating] = useState(false);
const [endScrollHandled, setEndScrollHandled] = useState(false);

// This handler checks if the scrolling variable is true and adjusts the offset accordingly
// We do not do this directly in the scroll event callback for performance reasons
const handleScroll = useCallback(() => {
    if (scrolling && !animating) {
        setScrolling(false);
        setEndScrollHandled(false);

        if (scrollTop !== offset) {
            setOffset(scrollTop);
        }
    }
    // once the scroll ends, do one more update so we don't miss the latest value due to the debounce
    else if (!endScrollHandled) {
        setOffset(scrollTop);
        setEndScrollHandled(true);
    }
}, [scrolling, animating, offset, endScrollHandled]);

// This function listens for scroll events on the scrollable element and sets the scrolling variable to true
useEffect(() => {
    (scrollElement || window).addEventListener('scroll', () => {
        setScrolling(true);
    });
    const scrollCheck = setInterval(handleScroll, 50);
    return (): void => {
        clearInterval(scrollCheck);
        (scrollElement || window).removeEventListener('scroll', () => setScrolling(true));
    };
}, [handleScroll]);


Newly submitted ChEBI:133899 needs correction

Sorry, I now remember I can change this using the submission tool, please disregard this request.
Hi ChEBI curators,
I just realized I made a mistake when drawing this compound and I made 9Z instead of 9E, can you please replace the mol file to represent 9E?
Thanks for your help and apologies for the inconvenience,
Lucila

Hi Lucila,
No problem - I'll close the ticket.


tvec_b_c makes me confused.

does tvec_b_c means camera to odom/vehicle frame transform? and its value in config file is
data: [123.9100, 399.1023, 0]
I want to ask what's the unit of this data, meter? seems too big.

It is the translation vector of odom to camera.
The unit is mm.

ok,Thanks


createdAt get same updated timestamp like updatedAt

In case your update a model the createdAt property will get the same value like updatedAt but I think the createAt timestamp should not change.
If you change the should update bulk model updates at once test to:
var createdAt1, createdAt2, updatedAt1, updatedAt2;

and add in callback of book creation 1:
createdAt1 = book.createdAt;

and in callback of book creation 2:
createdAt2 = book.createdAt;

and in books.foreach
assert.equal(createdAt1.getTime(), book.createdAt.getTime());
assert.equal(createdAt2.getTime(), book.createdAt.getTime());

The test fails because createAt timestamps have changed are not the same.

and in books.foreach

In the forEach call createdAt1 and createdAt2 should be different timestamps one of which will match each book so you can't evaluate it within the loop.  I added a check similar to what you're asking for before hand so you can see that even after the updateAll call the createdAt values for (what is now) book1 and book2 remain the same.

Hello clarkbw,
maybe the test run without an error but in real use it seems that
, defaultFn: 'now' in line 15 of index.js updates the createdAt property every time before save is called:
  Model.defineProperty(createdAt, { type: Date, required : true, defaultFn: 'now' });

The value of createdAt will not change after removing , defaultFn: 'now'.
I'm really new on LoopBack so I'm not sure whether this behavior comes from the ModelBaseClass or loopback-datasource-juggler or loopback-connector-mysql.

I'm sorry, I'm just not able to replicate the issue you're seeing.  I even did a quick test in the datasource-juggler module and can't see how this is happening in the higher level.  I have to believe this is something with your code or configuration.

@Oliver-G This issue is closed but if you can create a pull request that makes the travis ci build fail in the way you describe I can investigate it.  I just can't seem to reproduce what you're seeing.

Same problem for me. The test run without error,and I tested with loopback-datasource-juggler. It's looks like some package influenced it. I made an own mixins to defined property, with a default value. Then in before save hooks, the property always updated.
This question has been a torture for me for a few days.I don't know what caused it and how to resolve it.
:(

A previous issue that would show up like this was fixed.  In an upsert call the default values were being overwritten, see strongloop/loopback-datasource-juggler#616 for more information on that.  You need to be using v2.33.2 which has this update in it: https://github.com/strongloop/loopback-datasource-juggler/commit/b9e32bf8112171a154e1760af0ca91d546508dcb


Bluetooth: Controller: Cannot recreate CIG

Describe the bug
It is not possible to recreate the CIG if no CIS has been connected, significantly limiting the usage of unicast ISO.
To Reproduce
Steps to reproduce the behavior:

Add CONFIG_BT_CTLR_CENTRAL_ISO=y to tests/bluetooth/bsim_bt/bsim_test_audio/prj.conf
Apply https://github.com/zephyrproject-rtos/zephyr/pull/53291
Build and run the tests/bluetooth/bsim_bt/bsim_test_audio/test_scripts/unicast_audio.sh
See the following error on the second iteration (the tests runs in multiple iterations):

d_00: @00:00:04.330994  ASSERTION FAIL [!cig] @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/ll_sw/ull_central_iso.c:235
d_00: @00:00:04.330994  @ WEST_TOPDIR/zephyr/subsys/bluetooth/controller/ll_sw/ull_central_iso.c:235
d_00: @00:00:04.330994  [00:00:04.330,993] <err> os: z_fatal_error: >>> ZEPHYR FATAL ERROR 3: Kernel oops on CPU 0
d_00: @00:00:04.330994  [00:00:04.330,993] <err> os: z_fatal_error: Current thread: 0x81c38a0 (BT TX)
d_00: @00:00:04.330994  [00:00:04.330,993] <err> os: k_sys_fatal_error_handler: Halting system

Expected behavior
Expect to be able to create and delete (remove) a CIG using the same CIG ID multiple times.
Impact
Since the ISO implementation reuses the CIG IDs, this is a major issue for ISO central.
Logs and console output
See above
Environment (please complete the following information):

Commit SHA or Version used: 02b83892d2da063e665b114438b21a4f3b2443a2

Additional context
N/A

@mtpr-ot does this ring any bells?

@mtpr-ot does this ring any bells?

No, I would expect that to work.

@mtpr-ot does this ring any bells?

No, I would expect that to work.

On second thought, I think there was an issue there, which Vinayak pointed out. Will take a look.

@Thalley is this still an issue upstream in v3.3.0-rc1 ? if not, can we close this as fixed?

@Thalley is this still an issue upstream in v3.3.0-rc1 ? if not, can we close this as fixed?

No, this was fixed by https://github.com/zephyrproject-rtos/zephyr/pull/53450 - Closing

@Thalley is this still an issue upstream in v3.3.0-rc1 ? if not, can we close this as fixed?

No, this was fixed by #53450 - Closing

Hang on - my fix was removed by @cvinayak's copmmit, so the question is valid. Please check.

Reopened until verified on RC.

Reopened until verified on RC.

I can confirm that the CI BSIM tests for unicast works on the current main


docs(quickstart): simplify System.import usage

In my opinion, the current usage of System.import is a bit clunky, and perhaps intimidating for novices.
Current
System.import('app/boot')
        .then(null, console.error.bind(console));

This PR
System.import('app/boot')
        .catch(err => console.error(err));

Alt 1
System.import('app/boot')
        .catch(function(err) {
          console.error(err);
        });

Alt 2
System.import('app/boot')
        .catch(console.error.bind(console));

The current PR state will fail in most all the browsers out there except Chrome, since it's not transpiled and it's the only one that supports arrow functions natively.
Alt2 is a reasonable middle ground.

Sorry. Rob's objections stand. Alt2 is modestly better but necessitates a sweeping change to all samples and tests in multiple browsers. I am unpersuaded that changing from then(null, fn) to catch(fn) does much to relieve the SystemJS intimidation factor
We'll probably do it eventually but we won't be in this PR.
Thanks for offering though.


Armors without Stat

When using equipping an armor onto a Player such as steel plate or Runic Plate that should not have an attribute increase if the settings are set to not add a stat, it defaults to adding dexterity. This leads to ridiculous defense values.

Edit: This issue disappears if they're marked Martial, but could affect Rare armors

You are correct, whether it becomes 12 DEF or DEF+12 is if martial is checked. It was an afterthought that, martial can be changed via rare armor, so we'd have to figure out a way to account for that. Thanks.

This appears to have been fixed in the meantime.
If you can still reproduce the problem with a current version of the system please reopen the issue.


Connection refused: AMQP server

Scenario:
We are trying to connect to RabbitMQ using nameko through AMQP server.
Below is the traceback,
Traceback (most recent call last):
  File "d:\programfiles\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\programfiles\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\ProgramFiles\Scripts\nameko.exe\__main__.py", line 9, in <module>
  File "d:\programfiles\lib\site-packages\nameko\cli\main.py", line 72, in main
    args.main(args)
  File "d:\programfiles\lib\site-packages\nameko\cli\commands.py", line 85, in main
    main(args)
  File "d:\programfiles\lib\site-packages\nameko\cli\run.py", line 182, in main
    run(services, config, backdoor_port=args.backdoor_port)
  File "d:\programfiles\lib\site-packages\nameko\cli\run.py", line 129, in run
    service_runner.start()
  File "d:\programfiles\lib\site-packages\nameko\runners.py", line 66, in start
    SpawningProxy(self.containers).start()
  File "d:\programfiles\lib\site-packages\nameko\utils\__init__.py", line 186, in spawning_method
    return list(pool.imap(call, self._items))
  File "d:\programfiles\lib\site-packages\eventlet\greenpool.py", line 244, in next
    val = self.waiters.get().wait()
  File "d:\programfiles\lib\site-packages\eventlet\greenthread.py", line 179, in wait
    return self._exit_event.wait()
  File "d:\programfiles\lib\site-packages\eventlet\event.py", line 121, in wait
    return hubs.get_hub().switch()
  File "d:\programfiles\lib\site-packages\eventlet\hubs\hub.py", line 295, in switch
    return self.greenlet.switch()
  File "d:\programfiles\lib\site-packages\eventlet\hubs\hub.py", line 347, in run
    self.wait(sleep_time)
  File "d:\programfiles\lib\site-packages\eventlet\hubs\selects.py", line 50, in wait
    writers.get(fileno, noop).cb(fileno)
  File "d:\programfiles\lib\site-packages\eventlet\greenthread.py", line 218, in main
    result = function(*args, **kwargs)
  File "d:\programfiles\lib\site-packages\nameko\utils\__init__.py", line 181, in call
    return getattr(item, name)(*args, **kwargs)
  File "d:\programfiles\lib\site-packages\nameko\messaging.py", line 225, in setup
    verify_amqp_uri(self.amqp_uri)
  File "d:\programfiles\lib\site-packages\nameko\amqp\utils.py", line 49, in verify_amqp_uri
    with transport.establish_connection():
  File "d:\programfiles\lib\site-packages\kombu\transport\pyamqp.py", line 116, in establish_connection
    conn = self.Connection(**opts)
  File "d:\programfiles\lib\site-packages\nameko\amqp\utils.py", line 26, in init
    super(ConnectionTester, self).__init__(*args, **kwargs)
  File "d:\programfiles\lib\site-packages\amqp\connection.py", line 165, in init
    self.transport = self.Transport(host, connect_timeout, ssl)
  File "d:\programfiles\lib\site-packages\amqp\connection.py", line 186, in Transport
    return create_transport(host, connect_timeout, ssl)
  File "d:\programfiles\lib\site-packages\amqp\transport.py", line 299, in create_transport
    return TCPTransport(host, connect_timeout)
  File "d:\programfiles\lib\site-packages\amqp\transport.py", line 95, in init
    raise socket.error(last_err)
OSError: [Errno 10061] WSAECONNREFUSED

Command we are using to run ,
nameko run --config configuration/nameko.yml test 3000 &
nameko.yml file contains below configuration,
AMQP_URI: amqp://guest:guest@<IP_ADDRESS>:5672
WEB_SERVER_ADDRESS: <IP_ADDRESS>:5672
Operating system:
Windows 10 (Python code)
Linux (RabbitMQ server)
Please help us to solve this.

unfortunately we don't officially support windows (none of the core devs use it so was hard to test on, and not sure we've checked that all dependencies support windows) though i would love to make that happen
in your case, it looks like we're failing to connect to your rabbitmq server. you mention that's running linux while nameko is on windows. is it still accessible on localhost? (from the windows machine, as per your config)

@davidszotten Thanks for responding to my question. Sorry its my bad I did mention my configuration details properly earlier, Now i have updated my question details.
Yes I'm able ping linux server from Windows ( i.e nameko box to rabbitmq box )

in addition to ping, are you able to connect to the rabbitmq port (5672) from the windows machine?


upgrade spring-boot and spring

This will break the build:
[ERROR] Failed to execute goal org.apache.camel:bom-generator-maven-plugin:2.22.0-SNAPSHOT:generate (default) on project camel-spring-boot-dependencies-generator: Found 2 conflicts between the current managed dependencies and the external BOMS: [ERROR]  - org.apache.kafka:kafka-clients:jar [ERROR]  - org.apache.kafka:kafka_2.11:jar

Okay so its likely because Spring Boot upgraded Kafka in their dependencies. To fix this in that BOM generator is a bit tricky as it has some "magic code" that checks for all weirdness.

I had a look, but didn't get any more bright.
Should this be fixed by aligning the version of kafka-version and kafka-bundle-version with the ones from boot?

Okay so its because they upgraded to Kafka 1.1.0, and we are using 1.0.1.
So @davidkarlsen can you try to do a PR to upgrade kafka to 1.1.0, so its aligned with Spring Boot. And create a JIRA so we have a ticket for it - IMHO its a little bit bigger upgrade of kafka (not only a patch)

In 2.0.2.Final the version is still 1.0.1

Ah okay my bad. Hmm its a bit bad thing they did in a patch release.

Yeah, in 2.0.1 they have only spring-kafka stuff, in 2.0.2 they introduced plain kafka dependencies

Okay I am working on a fix

Okay got it working and have merged this PR, thanks @davidkarlsen


Google Pub/Sub as a sink

I would like to use Pub/Sub instead of SQS for events.

Have you ever considered adding support for Pub/Sub in contribs?
What are your tips regarding new queue implementation before creating PR?

I am in the middle of creating PubSub & conductor integration and would love to get your feedback before I issue MR.

After reading the code I have a couple of thoughts.
In Pub/Sub, unlike SQS and Conductor, there is no term 'queue' that represents resource where we can both send and receive. There are subscriptions and topics which allows reading and writing, respectively, to/from the topic.
This means that current abstraction ObservableQueue doesn't fit exactly with Pub/Sub model - ObservableQueue has both publish and receive methods.
This means that sink in form of googlePubSub:$google-project:$subscription-name (similar to sqs:$queue_name) could be used in Event task, but it won't be possible to use the same string when registering Event Handler as we can't read from subscription - Google Pub/Sub EventQueueProvider will not know if should return implementation that should allow sending or receiving messages. If we use the same sink form we won't be able to distinguish if we are in the context of publishing or receiving a message.
I see two ways of solving this:

use googlePubSub:subscription:$google-project:$subscription-name and  googlePubSub:topic:$google-project:$topic-name when defining resources in Event Task/Event handler. This way Google Pub/Sub EventQueueProvider will be able to serve implementation of ObservableQueue which implements reading or receiving events underneath. This approach is the simplest one, it doesn't require changing core code at all. Something like this will suffice:

    @Override
    public ObservableQueue getQueue(String queueURI) {
        if (isTopic(queueURI)) {
            return topics.computeIfAbsent(queueURI, q -> {
// it treats queueURI as topic name and allows only sending messages to
                return new PubSubTopicObservableQueue(...);
            });
        }

        return subscriptions.computeIfAbsent(queueURI, q -> {
// it treats queueURI as subscription name and allows only reading
            return new PubSubSubscriptionObservableQueue(...);
        });
    }

split ObservableQueue to QueueProducer and QueueReceiver (there are just example names).
All core code that uses ObservableQueue will have to be refactored to use new types - either QueueProducer or QueueReceiver.

WDYT?

We are also interested to send messages with workflow results to SNS instead of SQS, so different systems can subscribe to these messages and do some actions. How is it done in Netflix?

Hi @jakon89
Do you have results for this task? I'm also interested in using Google Pub/Sub.


Add default values for settings page

Hey, Thanks for contributing again, I had planned to implement these at some point so you save me some time!
I had some issues before I had saved the settings backend, the images wouldn't render. Furthermore the offset wasn't working for me. I have made a few changes - https://github.com/toughdeveloper/oc-imageresizer-plugin/commit/e4df16a0d7357723aa4307ac81fcc83439229fa4 .
Please let me know your thoughts (I attempted to update the Hungarian too, no idea if this is right or not)
Thanks,
Matt

It's OK. If you merge the changes, I will change the Hungarian translation.
Also I have some idea:

Check the quality and sharpen value (if the value is larger than 100, set the value is 100).
Add default width and height options for settings page.

Thanks, have added validation the settings to ensure they are between 0 and 100.
Not sure about adding default width/height to the settings page, it may have adverse effects when used with auto width/height, e.g. resize(false, 500); - May look at this later.


WIP: debug cypress flake

Desperate attempt for #36.
please work please work please work

https://github.com/matrix-org/sliding-sync/pull/80/commits/e67070df2b2b5e3fb8c5b076286ed32e1b1297c6 and https://github.com/DMRobertson/matrix-react-sdk/commit/75a7225d407786b1006b3b012f8352c291b6e8f5 and https://github.com/DMRobertson/matrix-js-sdk/commit/ad2ba142e82711d46457bddb0db71a3fb76a34b9 seem to give us some debug output:

I'm baffled that this isn't part of Cypress by default, but what do I know?

https://github.com/matrix-org/sliding-sync/actions/runs/4755613203/jobs/8454289003 is a run that has some kind of semi useful logs in it

I want to concentrate on this section of logs:
2023-04-20T18:12:41.0192423Z         cons:log ✱  SlidingSync setRoomVisible:,
2023-04-20T18:12:41.0192794Z                     !MStDLVlSvELjvzPwHs:localhost,
2023-04-20T18:12:41.0193077Z                     true,
2023-04-20T18:12:41.0193345Z                     shouldLazyLoad:,
2023-04-20T18:12:41.0193588Z                     true
2023-04-20T18:12:41.0194021Z         cons:log ✱  useCustomSubscription: remove,
2023-04-20T18:12:41.0194384Z                     !MStDLVlSvELjvzPwHs:localhost,
2023-04-20T18:12:41.0194733Z                     from confirmedRoomSubscriptions
2023-04-20T18:12:41.0195334Z         cons:log ✱  DMR: modifyRoomSubscriptions: set desiredRoomSubscriptions to,
2023-04-20T18:12:41.0195672Z                     {}
2023-04-20T18:12:41.0275118Z         cons:log ✱  DMR: in loop, desiredRoomSubscriptions,
2023-04-20T18:12:41.0275597Z                     {},
2023-04-20T18:12:41.0276571Z                     confirmedRoomSubscriptions,
2023-04-20T18:12:41.0276861Z                     {}
2023-04-20T18:12:41.0278407Z        cons:info ✱  checkForPreJoinUISI: showing all messages, skipping check
2023-04-20T18:12:41.0280219Z         cons:log ✱  Old unverified sessions:
2023-04-20T18:12:41.0281188Z         cons:log ✱  New unverified sessions:
2023-04-20T18:12:41.0282211Z         cons:log ✱  Currently showing toasts for:
2023-04-20T18:12:41.0283736Z       cy:command ✔  new url	http://localhost:8080/#/room/!MStDLVlSvELjvzPwHs:localhost
2023-04-20T18:12:41.0284720Z         cons:log ✱  RVS update:,
2023-04-20T18:12:41.0285095Z                     !MStDLVlSvELjvzPwHs:localhost,
2023-04-20T18:12:41.0285396Z                     undefined,
2023-04-20T18:12:41.0285638Z                     loading?,
2023-04-20T18:12:41.0285874Z                     false,
2023-04-20T18:12:41.0286107Z                     joining?,
2023-04-20T18:12:41.0286338Z                     false,
2023-04-20T18:12:41.0286565Z                     initial?,
2023-04-20T18:12:41.0286820Z                     undefined,
2023-04-20T18:12:41.0287081Z                     shouldPeek?,
2023-04-20T18:12:41.0287336Z                     true
2023-04-20T18:12:41.0288333Z         cons:log ✱  Switching to room id !MStDLVlSvELjvzPwHs:localhost at event undefined
2023-04-20T18:12:41.0288972Z         cons:log ✱  newscreen room/!MStDLVlSvELjvzPwHs:localhost
2023-04-20T18:12:41.0289455Z       cy:command ✔  wait	@syncRequest
2023-04-20T18:12:41.0290103Z         cy:fetch ➟  PUT http://localhost:45141/_matrix/client/r0/presence/%40user_49%3Alocalhost/status
2023-04-20T18:12:41.0290779Z                     Status: 200
2023-04-20T18:12:41.0291334Z         cy:fetch ➟  GET http://localhost:45141/_matrix/client/r0/capabilities
2023-04-20T18:12:41.0291681Z                     Status: 200
2023-04-20T18:12:41.0292111Z         cons:log ✱  Saving device tracking data,
2023-04-20T18:12:41.0292390Z                     null
2023-04-20T18:12:41.0293105Z         cy:fetch ➟  PUT http://localhost:45141/_matrix/client/r0/user/%40user_49%3Alocalhost/account_data/im.vector.setting.breadcrumbs
2023-04-20T18:12:41.0293562Z                     Status: 200
2023-04-20T18:12:41.0294269Z         cy:fetch ➟  (syncRequest) POST http://localhost:45719/_matrix/client/unstable/org.matrix.msc3575/sync?pos=11&timeout=20000
2023-04-20T18:12:41.0294679Z                     Status: 200
2023-04-20T18:12:41.0295335Z         cy:fetch ➟  POST http://localhost:45141/_matrix/client/r0/rooms/!MStDLVlSvELjvzPwHs%3Alocalhost/read_markers
2023-04-20T18:12:41.0295729Z                     Status: 200
2023-04-20T18:12:41.0296309Z         cy:fetch ➟  GET http://localhost:45141/_matrix/client/r0/profile/%40user_49%3Alocalhost
2023-04-20T18:12:41.0296663Z                     Status: 200
2023-04-20T18:12:41.0297358Z         cy:fetch ➟  GET http://localhost:45141/_matrix/client/r0/rooms/!MStDLVlSvELjvzPwHs%3Alocalhost/members?not_membership=leave
2023-04-20T18:12:41.0297780Z                     Status: 200
2023-04-20T18:12:41.0298674Z         cy:fetch ➟  GET http://localhost:45141/_matrix/client/r0/rooms/!MStDLVlSvELjvzPwHs%3Alocalhost/messages?limit=20&dir=b&from=s10_2_0_1_5_1_1_4_0_1&filter=%7B%22lazy_load_members%22%3Atrue%7D
2023-04-20T18:12:41.0299144Z                     Status: 200
2023-04-20T18:12:41.0299512Z        cons:info ✱  Presence:,
2023-04-20T18:12:41.0299776Z                     online
2023-04-20T18:12:41.0300372Z       cy:command ✘  assert	room_subscriptions is object: expected **undefined** to be an object
2023-04-20T18:12:41.0300836Z         cons:log ✱  DMR: add,
2023-04-20T18:12:41.0301166Z                     !MStDLVlSvELjvzPwHs:localhost,
2023-04-20T18:12:41.0301524Z                     to confirmedRoomSubscriptions
2023-04-20T18:12:41.0302032Z         cons:log ✱  DMR: in loop, desiredRoomSubscriptions,
2023-04-20T18:12:41.0302332Z                     {},
2023-04-20T18:12:41.0302630Z                     confirmedRoomSubscriptions,
2023-04-20T18:12:41.0302895Z                     {}

Transcript:

Call setRoomVisible('!MStDLVlSvELjvzPwHs:localhost', true). Asking to lazy-load this room, whatever that means
Add that room ID to roomIdToCustomSubscription; remove from confirmedRoomSubscriptions.
)
call modifyRoomSubscriptions with empty set and wait for it to resend()
not sure what resend() does
then: desiredRoomSubscriptions and confirmedRoomSubscriptions are empty. This sounds a bit odd to be---why don't we desire a subscription to this room?
we switch to the room in question
cypress captures our v3 request and fails the test
Immediately after we try to add the room ID to confirmedRoom subscriptions
(But confusiongly, on the next loop iteration desiredRoomSubscriptions and confirmedRoomSubscriptions are empty again.)


Missing png file extension

When download from unsplash, there is no extension appended.

Please, give me an URL example and downloaded filename example.

Now tool is correctly guess an image type and adds file extension for the URLs like this: https://plus.unsplash.com/premium_photo-1669689974101-55f9aea22158?q=80&w=2576&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D.

I think, issue can be closed.


Suggestion:Compatible with Croptopia F Delight and Aquaculture

Can you make fishes are compatible with Croptopia Farmers Delight and Aquaculture 2 recipes

Added in 1.0.3.


MRRESOURCES-94 Lazily provide projects* velocity properties

Alternative approach to #123 as suggested by @rfscholte.

I tried a few things to get a project dependency into the unittest but after some time I gave up.
So for now I just extended an existing test method to trigger the replacement of ${projects} and ${projectsSortedByOrganization} with empty values (due to the minimal stubbed unittest setup).

@rfscholte can you review/merge this please?

great PR: merged, thank you

@hboutemy thanks for merging!


Question: Consumer each message run from offset

Is your feature request related to a problem? Please describe.
I see in the documentation that in the Type ConsumerSubscribeTopic there is a parameter startFromBeginning. So if this is true then the consumer reads all messages from the beginning. Otherwise it waits and reads for new messages. How is it possible to read from the current offset ?? Lets say that the consumer crashes and more messages are produced but I do not want to consume all the messages from the beginning ??
Thanks

This parameter only decides from where to start if the consumer group has no offsets committed so that it will be used at least in these two scenarios:
a) The consumer started consuming a partition for the first time
b) The consumer was stopped and stayed offline for a while, the offsets were cleaned up, and when the consumer comes back online, the old offsets are not valid anymore

Thank you for your answer. I understand the answer but I do not see it working that way.
I have the following scenario:
A producer publish some messages on a topic every 5 seconds. A consumer is initialized using the following settings
await consumer.connect();
await consumer.subscribe({ topic, fromBeginning: false });
await consumer.run({
    autoCommit:true,
    autoCommitThreshold:1,
    eachMessage: processEachMessageRuleManager

});

So what I do here is that I commit the offset in every message that the function eachMessage receives. So if the consumer starts at offset 0 and for some reason crashes at offset 25 when it is restarted it should continue from offset 25 right ? Even though the producer has published more messages.
This is not the case though. The consumer when restarted it waits for new messages.
Have I understood something wrong ?? If so how can I make in this scenario the consumer to begin again from offset 25 ?
Thanks

any suggestions? would appreciate the help. I still cannot solve this

The scenario you are presenting works exactly as expected. Write a trivial consumer and you should see the same behavior. I used the consumer and producer from the examples/ directory, only changing the consumer to have the same autoCommit and autoCommitThreshold configuration that you showed above:
let msgNumber = 0
const run = async () => {
  await consumer.connect()
  await consumer.subscribe({ topic, fromBeginning: false })
  await consumer.run({
    autoComit: true,
    autoCommitThreshold: 1,
    eachMessage: async ({ topic, partition, message }) => {
      msgNumber++
      kafka.logger().info('Message processed', {
        topic,
        partition,
        offset: message.offset,
        timestamp: message.timestamp,
        headers: Object.keys(message.headers).reduce(
          (headers, key) => ({
            ...headers,
            [key]: message.headers[key].toString(),
          }),
          {}
        ),
        key: message.key.toString(),
        value: message.value.toString(),
        msgNumber,
      })
    },
  })
}

I produced some messages to the topic, ran my consumer until it reached the end of the topic, killed it, produced some more and then restarted the consumer, and it continued from where it left off:
❯ node examples/consumer.js
info:  ┏ [Consumer] Starting
info:  ┃ [0] {
info:  ┃ [1]   "timestamp": "2021-02-09T12:46:23.641Z",
info:  ┃ [2]   "logger": "kafkajs",
info:  ┃ [3]   "groupId": "test-group"
info:  ┗ [4] }
info:  ┏ [ConsumerGroup] Consumer has joined the group
info:  ┃ [ 0] {
info:  ┃ [ 1]   "timestamp": "2021-02-09T12:46:23.695Z",
info:  ┃ [ 2]   "logger": "kafkajs",
info:  ┃ [ 3]   "groupId": "test-group",
info:  ┃ [ 4]   "memberId": "example-consumer-cc07434b-92d2-42d2-bb64-e42fe2e8dd08",
info:  ┃ [ 5]   "leaderId": "example-consumer-cc07434b-92d2-42d2-bb64-e42fe2e8dd08",
info:  ┃ [ 6]   "isLeader": true,
info:  ┃ [ 7]   "memberAssignment": {
info:  ┃ [ 8]     "topic-test-2": [
info:  ┃ [ 9]       0
info:  ┃ [10]     ]
info:  ┃ [11]   },
info:  ┃ [12]   "groupProtocol": "RoundRobinAssigner",
info:  ┃ [13]   "duration": 50
info:  ┗ [14] }
info:  ┏ Message processed
info:  ┃ [ 0] {
info:  ┃ [ 1]   "timestamp": "1612874796552",
info:  ┃ [ 2]   "logger": "kafkajs",
info:  ┃ [ 3]   "topic": "topic-test-2",
info:  ┃ [ 4]   "partition": 0,
info:  ┃ [ 5]   "offset": "3",
info:  ┃ [ 6]   "headers": {
info:  ┃ [ 7]     "correlation-id": "1-1612874796501"
info:  ┃ [ 8]   },
info:  ┃ [ 9]   "key": "key-1",
info:  ┃ [10]   "value": "value-1-2021-02-09T12:46:36.501Z",
info:  ┃ [11]   "msgNumber": 1
info:  ┗ [12] }
info:  ┏ Message processed
info:  ┃ [ 0] {
info:  ┃ [ 1]   "timestamp": "1612874799503",
info:  ┃ [ 2]   "logger": "kafkajs",
info:  ┃ [ 3]   "topic": "topic-test-2",
info:  ┃ [ 4]   "partition": 0,
info:  ┃ [ 5]   "offset": "4",
info:  ┃ [ 6]   "headers": {
info:  ┃ [ 7]     "correlation-id": "1-1612874799502"
info:  ┃ [ 8]   },
info:  ┃ [ 9]   "key": "key-1",
info:  ┃ [10]   "value": "value-1-2021-02-09T12:46:39.502Z",
info:  ┃ [11]   "msgNumber": 2
info:  ┗ [12] }
^C
info:  ┏ [example/consumer] disconnecting
info:  ┃ [0] {
info:  ┃ [1]   "timestamp": "2021-02-09T12:46:43.533Z",
info:  ┃ [2]   "logger": "kafkajs"
info:  ┗ [3] }
info:  ┏ [Consumer] Stopped
info:  ┃ [0] {
info:  ┃ [1]   "timestamp": "2021-02-09T12:46:44.534Z",
info:  ┃ [2]   "logger": "kafkajs",
info:  ┃ [3]   "groupId": "test-group"
info:  ┗ [4] }

# here I produced another couple of messages

❯ node examples/consumer.js
info:  ┏ [Consumer] Starting
info:  ┃ [0] {
info:  ┃ [1]   "timestamp": "2021-02-09T12:46:55.089Z",
info:  ┃ [2]   "logger": "kafkajs",
info:  ┃ [3]   "groupId": "test-group"
info:  ┗ [4] }
info:  ┏ [ConsumerGroup] Consumer has joined the group
info:  ┃ [ 0] {
info:  ┃ [ 1]   "timestamp": "2021-02-09T12:46:55.169Z",
info:  ┃ [ 2]   "logger": "kafkajs",
info:  ┃ [ 3]   "groupId": "test-group",
info:  ┃ [ 4]   "memberId": "example-consumer-a5b79f98-7125-4ed4-a07e-15b7bc17a534",
info:  ┃ [ 5]   "leaderId": "example-consumer-a5b79f98-7125-4ed4-a07e-15b7bc17a534",
info:  ┃ [ 6]   "isLeader": true,
info:  ┃ [ 7]   "memberAssignment": {
info:  ┃ [ 8]     "topic-test-2": [
info:  ┃ [ 9]       0
info:  ┃ [10]     ]
info:  ┃ [11]   },
info:  ┃ [12]   "groupProtocol": "RoundRobinAssigner",
info:  ┃ [13]   "duration": 77
info:  ┗ [14] }
info:  ┏ Message processed
info:  ┃ [ 0] {
info:  ┃ [ 1]   "timestamp": "1612874809739",
info:  ┃ [ 2]   "logger": "kafkajs",
info:  ┃ [ 3]   "topic": "topic-test-2",
info:  ┃ [ 4]   "partition": 0,
info:  ┃ [ 5]   "offset": "5",
info:  ┃ [ 6]   "headers": {
info:  ┃ [ 7]     "correlation-id": "1-1612874809686"
info:  ┃ [ 8]   },
info:  ┃ [ 9]   "key": "key-1",
info:  ┃ [10]   "value": "value-1-2021-02-09T12:46:49.686Z",
info:  ┃ [11]   "msgNumber": 1
info:  ┗ [12] }
info:  ┏ Message processed
info:  ┃ [ 0] {
info:  ┃ [ 1]   "timestamp": "1612874812691",
info:  ┃ [ 2]   "logger": "kafkajs",
info:  ┃ [ 3]   "topic": "topic-test-2",
info:  ┃ [ 4]   "partition": 0,
info:  ┃ [ 5]   "offset": "6",
info:  ┃ [ 6]   "headers": {
info:  ┃ [ 7]     "correlation-id": "1-1612874812690"
info:  ┃ [ 8]   },
info:  ┃ [ 9]   "key": "key-1",
info:  ┃ [10]   "value": "value-1-2021-02-09T12:46:52.690Z",
info:  ┃ [11]   "msgNumber": 2
info:  ┗ [12] }

yeah it works as expected. thanks


Trying to create a AKS cluster - ingress controller for nginx and it says LB IP address is not found...tried in different regions etc.

Describe the bug
Tutorial followed: https://learn.microsoft.com/en-us/azure/linux-workloads/createwordpressdeployment/readme
Azure Subscription: 7485a9b6-0996-4265-aa23-5df43acac280
Command tried:  helm upgrade --debug --install --cleanup-on-fail --atomic ingress-nginx ingress-nginx/ingress-nginx
--namespace ingress-nginx
--create-namespace
--set controller.service.annotations."service.beta.kubernetes.io/azure-dns-label-name"=$MY_DNS_LABEL
--set controller.service.loadBalancerIP=$MY_STATIC_IP
--set controller.service.annotations."service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path"=/healthz
--wait --timeout 10m0s
Error:
ready.go:274: [debug] Service does not have load balancer ingress IP address: ingress-nginx/ingress-nginx-controller
ready.go:274: [debug] Service does not have load balancer ingress IP address: ingress-nginx/ingress-nginx-controller
Related command
helm upgrade --debug --install --cleanup-on-fail --atomic ingress-nginx ingress-nginx/ingress-nginx
--namespace ingress-nginx
--create-namespace
--set controller.service.annotations."service.beta.kubernetes.io/azure-dns-label-name"=$MY_DNS_LABEL
--set controller.service.loadBalancerIP=$MY_STATIC_IP
--set controller.service.annotations."service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path"=/healthz
--wait --timeout 10m0s
Errors
helm upgrade --debug --install --cleanup-on-fail --atomic ingress-nginx ingress-nginx/ingress-nginx     --namespace ingress-nginx     --create-namespace     --set controller.service.annotations."service.beta.kubernetes.io/azure-dns-label-name"=$MY_DNS_LABEL     --set controller.service.loadBalancerIP=$MY_STATIC_IP     --set controller.service.annotations."service.beta.kubernetes.io/azure-load-balancer-health-probe-request-path"=/healthz     --wait --timeout 10m0s
history.go:56: [debug] getting history for release ingress-nginx
Release "ingress-nginx" does not exist. Installing it now.
install.go:214: [debug] Original chart version: ""
install.go:231: [debug] CHART PATH: /home/pandu/.cache/helm/repository/ingress-nginx-4.9.1.tgz
client.go:142: [debug] creating 1 resource(s)
client.go:486: [debug] Starting delete for "ingress-nginx-admission" ServiceAccount
client.go:490: [debug] Ignoring delete failure for "ingress-nginx-admission" /v1, Kind=ServiceAccount: serviceaccounts "ingress-nginx-admission" not found
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:142: [debug] creating 1 resource(s)
client.go:486: [debug] Starting delete for "ingress-nginx-admission" ClusterRole
client.go:490: [debug] Ignoring delete failure for "ingress-nginx-admission" rbac.authorization.k8s.io/v1, Kind=ClusterRole: clusterroles.rbac.authorization.k8s.io "ingress-nginx-admission" not found
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:142: [debug] creating 1 resource(s)
client.go:486: [debug] Starting delete for "ingress-nginx-admission" ClusterRoleBinding
client.go:490: [debug] Ignoring delete failure for "ingress-nginx-admission" rbac.authorization.k8s.io/v1, Kind=ClusterRoleBinding: clusterrolebindings.rbac.authorization.k8s.io "ingress-nginx-admission" not found
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:142: [debug] creating 1 resource(s)
client.go:486: [debug] Starting delete for "ingress-nginx-admission" Role
client.go:490: [debug] Ignoring delete failure for "ingress-nginx-admission" rbac.authorization.k8s.io/v1, Kind=Role: roles.rbac.authorization.k8s.io "ingress-nginx-admission" not found
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:142: [debug] creating 1 resource(s)
client.go:486: [debug] Starting delete for "ingress-nginx-admission" RoleBinding
client.go:490: [debug] Ignoring delete failure for "ingress-nginx-admission" rbac.authorization.k8s.io/v1, Kind=RoleBinding: rolebindings.rbac.authorization.k8s.io "ingress-nginx-admission" not found
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:142: [debug] creating 1 resource(s)
client.go:486: [debug] Starting delete for "ingress-nginx-admission-create" Job
client.go:490: [debug] Ignoring delete failure for "ingress-nginx-admission-create" batch/v1, Kind=Job: jobs.batch "ingress-nginx-admission-create" not found
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:142: [debug] creating 1 resource(s)
client.go:712: [debug] Watching for changes to Job ingress-nginx-admission-create with timeout of 10m0s
client.go:740: [debug] Add/Modify event for ingress-nginx-admission-create: ADDED
client.go:779: [debug] ingress-nginx-admission-create: Jobs active: 0, jobs failed: 0, jobs succeeded: 0
client.go:740: [debug] Add/Modify event for ingress-nginx-admission-create: MODIFIED
client.go:779: [debug] ingress-nginx-admission-create: Jobs active: 1, jobs failed: 0, jobs succeeded: 0
client.go:740: [debug] Add/Modify event for ingress-nginx-admission-create: MODIFIED
client.go:779: [debug] ingress-nginx-admission-create: Jobs active: 0, jobs failed: 0, jobs succeeded: 0
client.go:740: [debug] Add/Modify event for ingress-nginx-admission-create: MODIFIED
client.go:486: [debug] Starting delete for "ingress-nginx-admission" ServiceAccount
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:486: [debug] Starting delete for "ingress-nginx-admission" ClusterRole
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:486: [debug] Starting delete for "ingress-nginx-admission" ClusterRoleBinding
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:486: [debug] Starting delete for "ingress-nginx-admission" Role
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:486: [debug] Starting delete for "ingress-nginx-admission" RoleBinding
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:486: [debug] Starting delete for "ingress-nginx-admission-create" Job
wait.go:66: [debug] beginning wait for 1 resources to be deleted with timeout of 10m0s
client.go:142: [debug] creating 11 resource(s)
wait.go:48: [debug] beginning wait for 11 resources with timeout of 10m0s
ready.go:274: [debug] Service does not have load balancer ingress IP address: ingress-nginx/ingress-nginx-controller
ready.go:274: [debug] Service does not have load balancer ingress IP address: ingress-nginx/ingress-nginx-controller
Issue script & Debug output
wait.go:48: [debug] beginning wait for 11 resources with timeout of 10m0s
ready.go:274: [debug] Service does not have load balancer ingress IP address: ingress-nginx/ingress-nginx-controller
ready.go:274: [debug] Service does not have load balancer ingress IP address: ingress-nginx/ingress-nginx-controller
Expected behavior
nginx ingress controller should be created
Environment Summary
pandu [ ~ ]$ az --version
azure-cli                         2.57.0
core                              2.57.0
telemetry                          1.1.0
Extensions:
ai-examples                        0.2.5
ml                                2.22.0
ssh                                2.0.2
Dependencies:
msal                              1.26.0
azure-mgmt-resource             23.1.0b2
Python location '/usr/bin/python3.9'
Extensions directory '/home/pandu/.azure/cliextensions'
Extensions system directory '/usr/lib/python3.9/site-packages/azure-cli-extensions'
Python (Linux) 3.9.14 (main, Oct 12 2023, 19:48:32)
[GCC 11.2.0]
Legal docs and information: aka.ms/AzureCliLegal
Your CLI is up-to-date.
Additional context
No response

The error is not related to the aks command group in azure-cli. Please seek help from https://github.com/Azure/AKS.

Hello Team,
Thanks for looking into this issue. Ideally would have liked the issued to be routed to another group rather than marking it as completed.
Thanks and Regards,
Pandu

From: FumingZhang @.>
Sent: Monday, February 26, 2024 10:42 PM
To: Azure/azure-cli @.>
Cc: Pandu Pabbisetty @.>; Author @.>
Subject: Re: [Azure/azure-cli] Trying to create a AKS cluster - ingress controller for nginx and it says LB IP address is not found...tried in different regions etc. (Issue #28460)
You don't often get email from @.*** Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
[EXTERNAL EMAIL - EXERCISE CAUTION, OPEN ONLY IF YOU ARE SURE OF THE SOURCE]
The error is not related to the aks command group in azure-cli. Please seek help from https://github.com/Azure/AKS.
—
Reply to this email directly, view it on GitHubhttps://github.com/Azure/azure-cli/issues/28460#issuecomment-1965885514, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BE5QUINFB7M2BJWLZUWZHCDYVV533AVCNFSM6AAAAABD274LIOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRVHA4DKNJRGQ.
You are receiving this because you authored the thread.Message ID: @.***>


Problem when use as one of a view controllers in a Tab Bar Controller

Hello,
Thanks for this great lib! However, I found an issue when use this lib as one of a view controllers in a Tab Bar Controller. For details, please see the gif attached

Can someone help me on this? Cheers!

I found a solution, I ended up adding a boolean value, so that the super.viewWillAppear method will only called once


Remove control menu in shex simple tool

The control menu at the top of the page was removed it and replaced with just the about dialog.
Bug: T221604

Did https://github.com/shexSpec/shex.js/commit/efa4c32c199bb8565a68bd2cd4b3bfbd6519f3c8 take care of this? I don't see a control menu in the current interface but I do with ui=full.

Actually this PR does not just remove the control menu but replaces it with an about button that was previously in the menu. I think ui=full had removed the menu completely including the about option?

It did indeed. Is there much value to the about button? I guess it could get people to pitch in...

Yeah I didn't want us to hide where this was coming from. But if you don't mind then I'm ok with removing it.

i put made some other interface dependent on a ui=full query parameter. i could do the same to hide the control menu.

closing it since ui=full already satisfy that. :+1:


Try pinning pytest-asyncio version

Exploring a fix for #28.
The issue seems to be with asyncio support in pytest.
I am unable to reproduce the CI errors locally, but @alisterburt has been able to. Looking at my local environment my pytest-asyncio version is 0.15.1 which is behind the current 0.17.2.
I'll start by pinning to see if that resolves things before moving to a more permanent fix.

Codecov Report

Merging #32 (bb17ebd) into main (729329a) will decrease coverage by 0.28%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main      #32      +/-   ##
==========================================
- Coverage   79.42%   79.13%   -0.29%
==========================================
  Files           9        9
  Lines         345      345
==========================================
- Hits          274      273       -1
- Misses         71       72       +1

Impacted Files
Coverage Δ

dask_ctl/spec.py
92.85% <100.00%> (ø)

dask_ctl/proxy.py
95.65% <0.00%> (-2.18%)
:arrow_down:

Continue to review full report at Codecov.

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


[Bug]: KV Cache exploded

Describe the bug
In the case of using softmax attention or any other attention with window_size=None, the KV cache update falls into this branch. This logic concatenates all historical sequence states with the new states (attn_state[0] and attn_state[1]), causing exponential growth in the KV cache.
Steps to reproduce the bug
Inference with attention with window_size=None
Expected behavior
KV-cache exploded
Environment info

@rakkit Hello, could you provide a minimal script for reproduction. I didn't meet the errors you reported by setting window_size=None


(blank? nil) returns nil, not true.

The documenation says that (blank? nil) => true, but that's not what I'm getting, see below:
(showing other blank? examples to show that the blank? is working, just not for nil or maybe your documentation is wrong?)
nick> (blank? "  ")
true
nick> (blank? nil)
nil
nick> (blank? "foobr")
false
nick> (blank? "")
true
nick> (blank? "\n")
true
nick> (blank? "\n\t")
true

The documentation is wrong, thanks for reporting it.


Curl on rotated pole grid

Trying to use iris.analysis.calculus.curl() with data on a rotated pole grid causes the following exception:
  File ".../iris/analysis/calculus.py", line 527, in curl
    raise ValueError('Expecting latitude as the y coord and longitude as the x coord for spherical curl.')

This is because the routine is incorrectly checking for a coordinate name of "latitude" and does not accept "grid_latitude" where appropriate.
The same problem also occurs a few lines later with:
new_lat_coord = d_j_cube_dphi.coord(name='latitude')

With these lines fixed it seems the routine will operate correctly.

Presumably this can be closed since #1795 has been merged.


Add set_parameter_bounds to IVVI.py

Changes proposed in this pull request:

updates values of dac upon changing the polarity of that dac

@WilliamHPNielsen

@kNalj Can you remove the whitespaces that Codacy noticed then I think this should be ready


FireStore Realtime functionality

I would like to know if there is FireStore realtime functionality like in the android SDK is planned. The old firebase admin SDK had it.
Thanks in advance.

Firestore is not realtime database. You can still use realtime database and firestore.

But the Firestore client-SDKs for web, android and ios support data listeners: https://firebase.google.com/docs/firestore/query-data/listen

We will confirm with the Firestore product team. Taking this until I find the right contact.

This is on the roadmap for the rest of the Server SDKs. It's already available in Node. Stay tuned!

Cool, thanks 👍

Hey guys, probably not the best place to ask, but I am also trying to implement listen in a Java Project. I am trying to set this up with REST API. Does anyone knows a valid object for it?
I just tried:
{
 "addTarget": {
  "targetId": "alovelace",
  "once": false,
  "documents": {
   "documents": [
    "room"
   ]
  },
  "query": {
   "structuredQuery": {
    "from": [
     {
      "collectionId": "room"
     }
    ]
   }
  }
 }
}

Whenever I try, always get:
{
 "0": {
  "error": {
   "code": 400,
   "message": "Invalid value (Object), ",
   "status": "INVALID_ARGUMENT",
   "details": [
    {
     "@type": "type.googleapis.com/google.rpc.BadRequest",
     "fieldViolations": [
      {
       "description": "Invalid value (Object), "
      }
     ]
    }
   ]
  }
 }
}

Please take a look at the Node API and turn on logging to see a dump of the request trace:
Firestore.setLogFunction(console.log)

That might help you.


Add something like Polysemy's Members

For quickly defining the possible effects, Polysemy has the Members type family. This can of course be implemented in effectful, something like this:
type family Effs effs es :: Constraint where
  Effs '[] es = ()
  Effs (e ': effs) es = (e :> es, Effs effs es)

Or maybe another type operator like ::>?
Or is there any particular reason it's not a thing yet?

Yeah, I considered it. I didn't yet since not having it avoids unnecessary bikeshedding whether (A :> es, B :> es, C :> es) or e.g. [A, B, C] :>> es should be used in type signatures :thinking:
But maybe that's a weak argument.

I think that once you get to 5+ effects on the stack, the second way becomes much more readable.
Loving the library btw, managed to port pat.hs from Polysemy to effectful today.

Loving the library

Thanks :bow:

I think that once you get to 5+ effects on the stack, the second way becomes much more readable.

That's a good point. You've convinced me ;) I have a plan of porting a big application that uses a lot of effects from the mtl style once effectful is released, so having that would indeed simplify type signatures.
There's one more thing though. For some reason ghci 9.2.1 started printing such signatures in a very ugly way:
>>> :t test
test
  :: (A :> es, (B :> es, (C :> es, () :: Constraint))) => Eff es ()

But previous releases print it normally:
>>> :t test
test :: (A :> es, B :> es, C :> es) => Eff es ()

I'd consider that a regression though, I'll make a ticket on the GHC bug tracker.

Bikeshedding time.  :>>, :<, :->, <:? Or something else? Not a fan of :< though, I prefer happy operators :joy:

I am against just using the flipped version <: because that could be confusing. I just used ::> and remember it like having more things on the left side. But :>> is also alright to me.

Fixed by 938550b784269855dcc2a77a29fc3bbfe181be73.
BTW, the GHC ticket is here: https://gitlab.haskell.org/ghc/ghc/-/issues/20974
It'll be fixed, so everything works out :+1:

Sadly I have to remove this (see #101 for explanation) for the sake of good long-term user experience in terms of compilation times.

Maybe we could re-open this issue then and mark it as blocked by the GHC issue? Just to keep track of it and signal to users that we actually want this feature...

Thank you @arybczak for shedding light on this flaw. I wonder if by chance we could have :>> rewritten to use :> via the compiler plugin?

That maybe could work, but compiler plugins come with their own set of problems, so I'm reluctant to use them for this.

We could try manually generating cases of the type family (up to some limit)
type family Effs effs es :: Constraint where
  Effs '[] es = ()
  Effs '[e1, e2] es = (e1 :> es, e2 :> es)
  Effs '[e1, e2, e3] es = (e1 :> es, e2 :> es, e3 :> es)
  Effs '[... en] es = (... en :> es)

This is used in fastsum.
We could run the template-haskell as code generation so we don't need to depend on it.

That would be much better than recursive definition, but there's still some overhead when compared to direct usage of :> (when you look at Core).
Also, I just realized that -Wredundant-constraints doesn't work with :>>, i.e. it won't tell you if any effects are redundant :thinking:

Also, I just realized that -Wredundant-constraints doesn't work with :>>, i.e. it won't tell you if any effects on the list are redundant thinking

I'm thinking in order to get support for this, it would have to probably be specifically added to the compiler plugin too, right? I don't think we can expect GHC to evaluate type families producing constraints in every case in order to find redundant ones.
(It's probably not even possible in some cases where the constraints produced depend on a type parameter.)

Ok, so I benchmarked it by measuring compilation times and Core sizes of 50 functions that look like this:
testN :: [E1, ..., E21] :>> es => Eff es ()
testN = do
  send E21
  ...
  send E1

Here are results for 50 functions that use 11 effects each:
:>> recursive

Result size of Tidy Core
  = {terms: 18,595, types: 50,727, coercions: 56,809, joins: 0/0}

Compilation time: 2.1s

:>> unrolled

Result size of Tidy Core
  = {terms: 17,545, types: 41,777, coercions: 16,609, joins: 0/0}

Compilation time: 1.8s

:>

Result size of Tidy Core
  = {terms: 17,495, types: 17,627, coercions: 7,909, joins: 0/0}

Compilation time: 1.66s

So a slowdown of 8% and 16% respectively.
and for 50 functions that use 21 effects each:
:>> recursive

Result size of Tidy Core
  = {terms: 35,095, types: 136,727, coercions: 169,809, joins: 0/0}

Compilation time: 3.8s

:>> unrolled

Result size of Tidy Core
  = {terms: 33,045, types: 109,277, coercions: 41,109, joins: 0/0}

Compilation time: 3.1s

:>

Result size of Tidy Core
  = {terms: 32,995, types: 32,627, coercions: 14,409, joins: 0/0}

Compilation time: 2.6s

A slowdown of 16% and 46% respectively.
So:
Pros:

Shorter type signatures.

Cons:

Significantly longer compilation times (multiply the additional time by 100 or more if you have a reasonably large application)
-Wredundant-constraints doesn't work.

I can't say I'm a fan of leaving this in.

I'm porting a codebase from cleff to effectful and am running into deprecated :>> issues.  The code has stuff like this...
type AppE = '[Effect1, Effect2, Effect3]
myFunction1 = AppE :>> es => Eff es Int
myFunction2 = (Effect4 ': AppE) :>> es => Eff es Int

Is there some analog to AppE I can achieve with just :>, or do I have to hand-unroll all the constraints everywhere AppE is used?

Thanks, that did the trick!  I didn't know about the ConstraintKinds extension before.  Now I do.
The conversion from cleff went well.  I liked cleff, but the compiler plugin no longer works on current ghc.


:seedling: Define the Kafka's data rentention policy explicity

Summary
"log.retention.ms": 604800000: the logs in each partition older than 7 days will be deleted
"log.retention.bytes":<PHONE_NUMBER>: make sure each partition size is below 1 GB
"log.segment.bytes": 107374182 : each segment log in a partition will make sure the file size is 100 MB, this a not a deletion policy.
Either the "log.retention.ms" and "log.retention.bytes" condition is met. It will apply the deletion policy on the related partitions
Related issue(s)
Fixes #

/retest

/cc @clyang82

The default data retention policy is:
log.retention.hours=168

data keeps 7 days


Execute queries in execute and batch_execute

Neither of these methods are public API. batch_execute is used by
migrations, and execute.... Actually can probably be deleted at this
point. They are both methods that are intended to run raw SQL queries
(batch runs more than one, execute returns affected rows) which do not
involve prepared statements or any results, so they make good low
targets for this piece of the implementation.
Setting MYSQL_OPTION_MULTI_STATEMENTS_ON appears to have all kinds of
nasty side effects that may blow everything up. However, our test suite
does not appear to be blowing up yet. I suspect that a migration which
contains an insert/update statement with a returning clause or a select
statement (which there's no reason to do, but let's check anyway) will
blow up.
Things that are terrible about MySQL that I had forgotten about before
today:

Columns of type BLOB, TEXT, GEOMETRY, and JSON cannot have
default values. Because reasons I guess.
VARCHAR is not valid syntax, even though the documentation claims
that you can have a varchar column of unspecified length.
Any modifications of schema will implicitly commit the current
transaction, meaning our test suite will need major modifications to
support MySQL.

Well it seems to at least get to calls to query_all and execute_returning_count before blowing up now, so I think we're on the right track.


Module @material-ui/core has no exported member ThemeProvider

[x] The issue is present in the latest release.
[x] I have searched the issues of this repository and believe that this is not a duplicate.

Current Behavior 😯
TypeScript compilation fails with
import { ThemeProvider } from '@material-ui/core'

Because ThemeProvider is not exported. However, ThemeProvider exists in index.js and the same import works with a JavaScript source.
Expected Behavior 🤔
Import should work as in JavaScript
Steps to Reproduce 🕹
See current behavior
Context 🔦
A look into the generated index.d.ts, shows that MuiThemeProvider is exported but ThemeProvider is not. This could be related to https://github.com/mui-org/material-ui/pull/16490 and https://github.com/mui-org/material-ui/issues/16489
The index.js has both.
So far my workaround is to import MuiThemeProvider as ThemeProvider, but it will be good to allow just ThemeProvider to match the docs.
Your Environment 🌎

Tech
Version

Material-UI
v4.7.0

React
v16.12

TypeScript
v3.7.2

Thanks for the issue. As far as I can see, it will be solved in the next release. Do you confirm?


first version of clip retrieval end2end

#31
missing here:

include the front
add some nice dataset example (should take < 5min and be fun)


How do I declare .h Files as C-Code?

Please describe the problem.
For hints on what information is helpful, see: https://clangd.llvm.org/troubleshooting.html
I can't find any documentation to declare header files as C-Files instead of C++-Files. This does not allow me to write standard-compliant C-Code which is non-compliant with C++.
For example, in C one is allowed to not cast the result of malloc(). It is could even be a bad idea to do so..
If you can, provide a minimal chunk of code that shows the problem (either inline, or attach it if larger).
This is a file called test.h:
#include<stdlib.h>

static int *f() {
  int *p = malloc(sizeof(int));
  return p;
}

For the malloc line, it produces the following error message:

Cannot initialize a variable of type 'int *' with an rvalue of type 'void *'
[clang: init_conversion_failed]

How can I declare .h files as C-files? I'm fine with using '.hpp' or '.hh' for C++.
Logs
Please attach the clangd log from :CocCommand workspace.showOutput if you can.
If possible, run with --log=verbose - note that the logs will include the contents of open files!
I[09:13:41.189] clangd version 12.0.1 (https://github.com/llvm/llvm-project fed41342a82f5a3a9201819a82bf7a48313e296b)
I[09:13:41.189] PID: 1118103
I[09:13:41.190] Working directory: /home/lquenti/Documents/gwdg/lquentin/dev/io-benchmark
I[09:13:41.190] argv[0]: /home/lquenti/.config/coc/extensions/coc-clangd-data/install/12.0.1/clangd_12.0.1/bin/clangd
I[09:13:41.190] Starting LSP over stdin/stdout
I[09:13:41.191] <-- initialize(0)
I[09:13:41.192] --> reply:initialize(0) 1 ms
I[09:13:41.213] <-- initialized
I[09:13:41.213] <-- textDocument/didOpen
I[09:13:41.214] Failed to find compilation database for /home/lquenti/Documents/gwdg/lquentin/dev/io-benchmark/test.h
I[09:13:41.214] ASTWorker building file /home/lquenti/Documents/gwdg/lquentin/dev/io-benchmark/test.h version 1 with command clangd fallback
[/home/lquenti/Documents/gwdg/lquentin/dev/io-benchmark]
/usr/lib/llvm-10/bin/clang -xobjective-c++-header /home/lquenti/Documents/gwdg/lquentin/dev/io-benchmark/test.h -fsyntax-only -resource-dir=/home/lquenti/.config/coc/extensions/coc-clangd-data/install/12.0.1/clangd_12.0.1/lib/clang/12.0.1
I[09:13:41.216] --> textDocument/clangd.fileStatus
I[09:13:41.282] --> textDocument/publishDiagnostics
I[09:13:41.282] --> textDocument/clangd.fileStatus
I[09:13:43.213] <-- textDocument/semanticTokens/full(1)
I[09:13:43.214] --> reply:textDocument/semanticTokens/full(1) 0 ms
I[09:13:43.214] --> textDocument/clangd.fileStatus

System information
Clangd version (from the log, or clangd --version): clangd version 12.0.1
clangd extension version (from :CocInfo):
## versions

vim version: NVIM v0.4.3
node version: v17.1.0
coc.nvim version: 0.0.80-03c9add7cd
coc.nvim directory: /home/lquenti/Documents/dotfiles/nvim/nvim/plugged/coc.nvim
term: screen-256color
platform: linux

## Log of coc.nvim

2021-11-27T09:16:30.649 INFO (pid:1121158) [plugin] - coc.nvim 0.0.80-03c9add7cd initialized with node: v17.1.0 after 401ms
2021-11-27T09:16:30.658 INFO (pid:1121158) [services] - registered service "clangd"
2021-11-27T09:16:30.659 INFO (pid:1121158) [services] - clangd state change: stopped => starting
2021-11-27T09:16:30.696 INFO (pid:1121158) [language-client-index] - Language server "clangd" started with 1121192
2021-11-27T09:16:30.724 INFO (pid:1121158) [services] - clangd state change: starting => running
2021-11-27T09:16:30.737 INFO (pid:1121158) [services] - service clangd started
2021-11-27T09:16:31.628 INFO (pid:1121158) [attach] - receive notification: showInfo []

Operating system: Ubuntu 20.04.3 LTS x86_64

One could define in the ~/.config/nvim/coc-settings.json
{
...
"clangd.fallbackFlags": ["--std=gnu11"]
}

but this will break everything because it still expects C++-Code, thus resulting in a

Invalid argument '--std=gnu11' not allowed with 'Objective-C++'
[clang: drv_argument_not_allowed_with]

Update (for everyone googling in the future): That's what the compilation databases are for. I personally use Makefiles and had my luck generating them via bear.


Add Fluent API do specify a ValueComparer for a property

Possibly an overload of HasConversion

Note: consider whether to set all three types of comparer (key, structural, normal) to the same thing by default, and whether or not to do fallback at runtime or by setting multiple by default. See #19256.


update gorm-driver

I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

Pull request type

Please check the type of change your PR introduces:

[ ] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[x] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Issue Number: N/A
What is the new behavior?

Other information

Codecov Report
Patch coverage has no change and project coverage change: -23.47 :warning:

Comparison is base (1b6c878) 64.75% compared to head (6901467) 41.29%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #727       +/-   ##
===========================================
- Coverage   64.75%   41.29%   -23.47%
===========================================
  Files         227      170       -57
  Lines       22610    18614     -3996
===========================================
- Hits        14642     7686     -6956
- Misses       7213    10591     +3378
+ Partials      755      337      -418

Flag
Coverage Δ

?

go-1.17.x
41.02% <ø> (-23.48%)
:arrow_down:

go-1.19.x
41.34% <ø> (-22.87%)
:arrow_down:

go-1.20.x
?

integration
?

macOS
41.30% <ø> (+0.03%)
:arrow_up:

ubuntu
41.29% <ø> (+<0.01%)
:arrow_up:

unit
41.29% <ø> (-0.06%)
:arrow_down:

windows
?

ydb-22.5
?

ydb-23.1
?

Flags with carried forward coverage won't be shown. Click here to find out more.
see 170 files with indirect coverage changes

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


ARM build

Hi all,
I was willing to have subify running on my Raspberry Pi. I tried to cross compile it but since I am no Go Lang expert, I was unable to build subify on my own. It'd be useful also to have the build instructions on the wiki? Building multipackage apps on go isn't that straight forward as it seems... :(

I don't have a Raspberry Pi to test it, but you can find information about ARM cross compilation here: https://github.com/golang/go/wiki/GoArm
Or you could simply download Go and Subify on your Raspberry Pi and compile directly on it. The Go compiler should automatically choose the right architecture for you.
I'll add a part for compiling Subify from source in the README :)

README has been updated. Could you tell me if you have succeed in using Subify on Raspberry ?

@rafaelri And in new 0.4.0 version, there are version for ARM


[Q] How to download a lot of histories?

I have several thousand runs in a project, and I'd like to download all their histories together. Manually looping over all the runs and querying their history with run.history(...) takes a very long time (hours), and it looks like the implementation of runs.histories(...) does the same thing.
If I query the runs in parallel, I get a requests.exceptions.HTTPError: 429 Client Error: Too Many Requests for url: https://api.wandb.ai/graphql. Any suggestions on what to do?

On a related note, is there a way to access multiple histories through the GraphQL API? Is that API even working at this time?

David


center the game over text

Actually you'll have to update all subsequent files, but nvm it's handled in f01d4db, thanks for the notice!


Switch tests to redpanda

What type of PR is this? (check all applicable)

[x] ♻ Refactor
[ ] ✨ Feature
[ ] 🐛 Bug Fix
[ ] 👷 Optimization
[ ] 📝 Documentation Update
[ ] 🚩 Other

Description
Switching the Kafka + CSR + Zookeeper containers to Redpanda.
Adding a path ignore for the .md, .txt files, and examples directory.
Not 100% sure if there will be any actual benefits of switching to the image caching suggestion as we only have the Redpanda image that will be pulled and we need to make sure that the datagen image is built fresh on every run to prevent some weird results. Open to suggestions!
Related Tickets & Documents
Closes #87
Added to documentation?

[ ] 📜 readme
[x] 🙅 no documentation needed

[optional] What gif best describes this PR or how it makes you feel?

Looking at the integration test results, it seems like several of these tests are actually failing. Things like

404 subject Products-value doesn’t exist

There’s also a failure on tests/schema2.sql that I think is a separate bug.
Regardless, these tests should show fail. Curious why they aren’t.

Ah yes, here’s another place where we should exit 1:
https://github.com/MaterializeInc/datagen/blob/main/datagen.ts#L104

Good catch @chuck-alt-delete! I've added those exit 1 changes and fixed the mismatching prefixes in the tests!

Just need to add exit 1 here: https://github.com/MaterializeInc/datagen/blob/main/datagen.ts#L104
and remove schema2.sql from the tests (that’s a bug we should look into separately — it has to do with using multiple columns as a primary key)

Had to update the Parse schema process exit here as well so that those problems would cause an error.
Also disabling the SQL to avro tests as there is a bug with the naming convention of the schemas, eg the schemas can not be registered when there is a dot in the name name:
| ✖  Failed to register schema.  ResponseError: Confluent_Schema_Registry - name doesn't match namespace {"name":"ecommerce.products","type":"record","fields":[{"name":"id","type":"int"},{"name":"name","type":"string"},{"name":"merchant_id","type":"int"},{"name":"price","type":"int"},{"name":"status","type":"boolean"},{"name":"created_at","type":"string"}],"namespace":"com.materialize"}

The error message indicates that the name of the schema, "ecommerce.products", does not match the namespace specified in the schema, "com.materialize". In the Confluent Schema Registry, the name of the schema should include the namespace, so the correct name for this schema would be "com.materialize.ecommerce.products" or we should not allow dots to be used in the schema names instead.
We should open a separate issue for this.