feat: integrate SIOP work

Integrate SIOP work

Codecov Report

:exclamation: No coverage uploaded for pull request base (main@8a4de77). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head 23150b4 differs from pull request most recent head 59b54b9. Consider uploading reports for the commit 59b54b9 to get more accurate results

@@           Coverage Diff           @@
##             main      #21   +/-   ##
=======================================
  Coverage        ?   62.73%
=======================================
  Files           ?       23
  Lines           ?      864
  Branches        ?      173
=======================================
  Hits            ?      542
  Misses          ?      322
  Partials        ?        0

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 8a4de77...59b54b9. Read the comment docs.


source.unsplash.com no longer working

https://source.unsplash.com/collection/4733334/?winter,day,cloudy&s=1631542013371

I think source.unsplash.com no longer work

Hmm. Looking into it now.

if it helps, reddit suggests that source.unsplash.com appears to be depreciated, Unsplash moved to API.
looking forward to this hopefully getting an update. i love this Module @BrianHepler thank you for its development and not abandoning it, yet.

I'm in talks with Unsplash to get an application license. They've been slow to respond.

Are they allowed to publish API token?

No, they have a two-key system. Developer key & secret key. You're not supposed to share either one. I'm trying to get a response on having the users register and get an API key without having to register as developers. They operate from the perspective of people building mobile apps, not open source.

I've created a pull request that requires users to register and get an API key.


Ruby - Write sample code for setting and reading error details

Ruby issue for #4543.

We discussed this with @murgatroid99  and it should be easily doable with the existing Ruby metadata API.  Making this post-GA.

@jtattermusch can you point me to the class that exposes the metadata APIs?

Links to various pieces of ruby metadata API:
https://github.com/grpc/grpc/blob/794834f/src/ruby/lib/grpc/generic/client_stub.rb#L135
https://github.com/grpc/grpc/blob/794834f/src/ruby/lib/grpc/generic/active_call.rb#L126
https://github.com/grpc/grpc/blob/794834f/src/ruby/lib/grpc/generic/active_call.rb#L215
https://github.com/grpc/grpc/blob/794834f/src/ruby/lib/grpc/generic/active_call.rb#L62
examples: https://github.com/grpc/grpc/blob/794834f/src/ruby/spec/generic/active_call_spec.rb#L162
https://github.com/grpc/grpc/blob/794834f/src/ruby/spec/generic/client_stub_spec.rb#L139
https://github.com/grpc/grpc/blob/794834f/src/ruby/spec/generic/rpc_server_spec.rb#L79

@murgatroid99  for details about trailing metadata API.


fix: (issue-6608) Add origin header to server-side fetch

Add the Origin header to server-side fetch.
The problem has been introduced with #6550, where browser CORS behaviour was simulated for the server-side requests. For CORS requests to work properly, the Origin header is mandatory.
Fixes: #6608
Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[x] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[x] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[x] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. All changesets should be patch until SvelteKit 1.0

thank you!


switch inmemory broker image to gcr repo

current broker image is tzununbekov/memory-broker should be gcr.io/triggermesh/inmemory-broker

Done: https://github.com/triggermesh/tmctl/blob/v0.0.1/pkg/triggermesh/components/broker/broker.go#L46


Gateway/create new event + club + period

:tickets: Ticket(s): Closes #46 closes #47

:construction_worker: Changes
Endpoints for create event, create club, and create application period, all belonging to Club manager router. Also tests and frontend endpoints were created.
:flashlight: Testing Instructions
make test

thanks susie! ill take it from here

Okie, thanks Robert!! :D


Ability to list all subscribed courses

Please add feature to list all subscribed courses and export it in a text file.

not possible because the api is not supported

@patelsiraj1 this is discussed so many times in previous issues and i said that i will not add this feature so sorry for that.


Gcox/refactor publish

Description
This is a refactoring of the existing PublishPlugIn.publish() and deploy.ts code into a set of discrete functional steps.
Some of the code in the steps is imported 'as-is' to preserve exact behavior.
Task Item
Screenshots

Coverage remained the same at 56.258% when pulling bdae200109befdf2880a92939c503e02aa047949 on gcox/refactor-publish into e45f95bb2acd4448032b68d44e7646dc13c41ad0 on main.


PyTorch Lightning integration collaboration

Love the tricks introduced by mosaic!
We created an issue to enable the broader pytorch community access to these tricks if they want to enable the mosaic optimizations.
Excited to collaborate with you guys to make sure it's done correctly and future proof so that you can continue adding new features without code changes on the Lightning side.
https://github.com/PyTorchLightning/pytorch-lightning/issues/12360

Sounds good, looking forward to collaborate! We care most about delivering efficiency methods to the community in whichever form they would like to consume.

Hello, @williamFalcon and @hanlint.
Do you have any news about this feature?
I am using pytorch lightning, but I think it would be useful to add mosaic training strategies like those proposed in https://github.com/Lightning-AI/lightning/issues/12360. Is there a way to combine both trainers easily?
Thanks for the effort in developing awesome libraries.

Yeah, what's happened to this work? Seemed really exciting, then sort of disappeared again.

Closing since we're not actively planning on integrating speedup methods with lightning. We're happy to discuss and accept / review community PRs though!


Define CDC configuration

Description
Utilizing the change-data-capture future does not expose any programmatic API. The only interaction a user has with the feature is through configuration, in XML, or with configuration objects in code. Therefore, we should have a well-defined configuration declaration that streamlines the process from the user's perspective. To utilize CDC in a cache should be as frictionless as possible[^1].
[^1]: Most of the configuration effort should be to prepare the database. These configurations are covered by the Debezium guides.
Implementation ideas
Utilizing our experience with Gingersnap, the necessary configuration to run the embedded engine requires:

Database credentials and connection parameters.
Table(s) to capture and columns to include.
Transformation operations, e.g., transform an ID column into a cache key.

We should strive to make a minimal configuration capable of automatically filling the parameters. More advanced users could have control over all the parameters if required.
Complete Configuration
The complete configuration should give the user control over all the aspects of the CDC process. The user can control which columns to include, transformation, and foreign key expansion. We utilize the following database in our example:
CREATE TABLE department(
  DId int NOT NULL,
  DName varchar(45),
  PRIMARY KEY (DId)
);

CREATE TABLE student (
  SId int NOT NULL,
  SName varchar(45),
  GradYear varchar(4),
  MajorId int,
  PRIMARY KEY (SId),
  FOREIGN KEY (MajorId) REFERENCES department(DId)
);

The complete configuration should have a format similar to:
<distributed-cache name="my-students-cache" xmlns="urn:infinispan:config:cdc:15.2">
    <change-data-capture expand-foreign-keys="MajorId">
        <!-- Data source to connect to the database. -->
        <data-source jndi-url="jdbc/ExampleDS" />

        <!-- Explicitly declare the table and the columns to use -->
        <table name="student">
            <!-- Defines which column should be the primary key and how to transform the content. -->
            <primary-key name="SId" key-transformation="org.infinispan.persistence.keymappers.DefaultTwoWayKey2StringMapper" />

            <!-- Filter the columns to include in the cache. -->
            <column name="SName" />
            <column name="GradYear" />
        </table>
    </change-data-capture>
</distributed-cache>

In this example, the cache will receive updates for the student table. The final object inserted into the cache contains the columns SName and GradYear. The entry is indexed by the transformation applied over the primary key SId using the implementation provided in the key-transformation attribute.
With the attribute expand-foreign-keys="MajorId", we automatically identify the foreign key constraint and load the metadata of table department. When a new event is received, we automatically load the record referenced by the FK and embed it in the cache object.
Minimal Configuration
The minimal configuration utilizes the existing database connection configuration we have in Infinispan. This covers simple and pooled connections, CDI, and JNDI. All these options should work with CDC and would remove the need for a user to explicitly declare the username, password, etc. For example, with the following cache configuration:
<!-- Cache name is the table name. -->
<distributed-cache name="student" xmlns="urn:infinispan:config:cdc:15.2">
    <change-data-capture>
        <data-source jndi-url="jdbc/ExampleDS" />
        <!-- Utilize the cache name to inspect the database and retrieve metadata for the columns. -->
    </change-data-capture>
</distributed-cache>

This should be effectively the minimal configuration a user is required to provide. This is equivalent to the fully-explicit configuration, except for the foreign key expansion. In details, we have:

The cache name translates to the table name in the database. In this case, student.
The JNDI will retrieve the data source capable of accessing the database for introspection and automatically populate the required properties.

In this case, utilizing the data source, we retrieve the table student metadata. With this information, we identify that the column SId is the primary key, and we automatically use that as the entry key in the cache. Additionally, we include all the columns of the record in the cache entry.

The examples here serve the purpose of triggering a discussion and are not the final design. In addition to the XML configuration, we need to implement the programmatic configuration. Keep in mind the only interaction of the user with the feature is through the configuration, we need to simplify as much as possible.
We already have implementations for SQL stores that contain configurations that receive a database configuration and create a connection factory. These classes are primarily on the jdbc-common module and would help to reuse code and make an easier implementation. However, these configurations inherit from a store configuration, which includes many more properties that do not make sense for the CDC use case.
We can use this issue to discuss the design of the configuration.

One point is whether a single cache could accept events from many tables simultaneously or we want to restrict this. Many tables would make a hard requirement for a key transformation to avoid collisions.


I don't think this is how the QuickBooks Payroll File Import Extension works

I wish it actually worked as described on this page, but I don't believe it does.  The "QuickBooks Payroll File Import Extension" doesn't actually import anything from QuickBooks.  That's a real shame.  Actually, it allows you to import an "IFF" file of payroll G/L entries into BC in the same manner that you would import that file into QuickBooks.  As an example, if I use PayChex as my Payroll provider, I can export the result of my payments from PayChex to an IIF file.  This is the format used to import data into QuickBooks.  Instead of importing this IIF file into QuickBooks, I can use this extension to import that same IIF file into BC.

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

ID: 5eee77f4-8ea1-039c-86a4-8c083e4acd25
Version Independent ID: 2a89fa84-9cf7-00ad-a543-9992ecd031ac
Content: Using the Quickbooks Payroll File Import Extension - Business Central
Content Source: business-central/ui-extensions-quickbooks-payroll.md
Service: dynamics365-business-central
GitHub Login: @SorenGP
Microsoft Alias: SorenGP

Hello,
Thank you for your feedback! Our apologies for the very long wait for an answer!
A member of our team has at long last reviewed your feedback. We defer to the QuickBooks docs to explain how to export from QuickBooks.


dataset

Could you please provide information about each txt file in the dataset and the meaning of each line within the files? Thank you kindly.

I have included a file named README_DATA.md to provide additional explanations regarding the .txt files in the dataset.

Thank you for resolving my  issue and providing a solution. I sincerely appreciate your assistance and the effort you put into addressing my problem.


An attempt to fix CircleCI configuration

Since the gm branch no longer exists, this should hopefully be the correct configuration… maybe?

Okay, I actually have no idea, sorry 😓


Devise 1.4.7 - Remaining logged into Subdomain

I have found a bug on production and staging where if I log into one subomain, it will log me into another subdomain by default.  I have updated my user model to look like this.
class User < ActiveRecord::Base

  # Associations
  #----------------------------------------------------------------------------
  belongs_to :account

  devise :database_authenticatable, :confirmable, :recoverable, :token_authenticatable, #:lockable
         :rememberable, :trackable, :lockable, :invitable, :validatable,
         :authentication_keys => [ :email, :subdomain ]

  # Getters/Setters
  #----------------------------------------------------------------------------
  attr_accessible :name, :title, :email, :password, :password_confirmation, :authentication_token,
                  :remember_me, :role, :account_id, :announcement_hide_time

  # Validations - Extra beyond devise's validations
  #----------------------------------------------------------------------------
  validates :name, :presence => true
  validates :role, :presence => { :message => "needs to be selected" }

  # Scopes
  #----------------------------------------------------------------------------
  scope :owner, where(:role => :owner)
  scope :admin, where(:role => :admin)
  scope :default, where(:role => :user)

  # Class Methods
  #----------------------------------------------------------------------------
  def self.find_for_authentication(conditions={})
    conditions[:accounts] = { :subdomain => conditions.delete(:subdomain) }
    find(:first, :conditions => conditions, :joins => :account, :readonly => false)
  end

end

By the way, It works in development by not staging and production on engine yard.

Yes, Devise does authentication, you still need a before filter to ensure a subdomain authorization or properly set your cookies.

cookie issue that wasn't aware was in place


test github issue for dingding robot

Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment:

OS: [e.g. Ubuntu 18.04]
CPU: [e.g. Intel Xeon xxxx]
Compiler: [e.g. GCC 8.0]

Additional context
Add any other context about the problem here.

Test finished


Un-crouching is incorrectly allowed while under low surfaces

While testing things out, I was able to stand up under low surfaces after crouching under them, causing my head to clip into the ceiling - and then being unable to re-crouch while clipping; this is not ordinarily possible as a default behavior of crouching.
I found that removing the SetStance on line 639 of AlsCharacter.cpp stopped the issue and allowed low surfaces to prevent standing up (until walking out from under them):
void AAlsCharacter::UnCrouch(const bool bClientSimulation)
{
	Super::UnCrouch(bClientSimulation);

	// Chance stance instantly without waiting for ACharacter::OnEndCrouch().

	SetStance(AlsStanceTags::Standing);
}

However, I'm not sure if removing this negatively impacts anything, as the presence of a comment having this change instantly means it was done intentionally for a purpose.
Full disclosure: I'm super new to the C++ side of things, Github, and ALS and haven't fully looked through all of the code yet to get a full grasp of things.

It was indeed intentional, but I can't remember exactly why 🥲. Anyway, I fixed this in 42daee3183587b244c54870e7024af0568f84318 and everything still looks fine.


feat: complete model rendering and file output for Go generator

Description
This PR adds both complete model rendering and file output for the JS generator.
Related issue(s)
Fixes https://github.com/asyncapi/modelina/issues/398

@smoya maybe you want to have a look as well? 🙂

And I have no idea why this is failing...

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

20 of 20 (100.0%)  changed or added relevant lines in 3 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.06%) to 93.311%

Totals

Change from base Build<PHONE_NUMBER>:
0.06%

Covered Lines:
2345

Relevant Lines:
2393

💛  - Coveralls

/rtm

Thanks for the reviews @smoya @magicmatatjahu  🙇


proto activate shouldn't check for version when sourcing

What version?
No response
Which command?
proto activate fish | source
What happened?
Sometimes new proto version is available is shown when opening the terminal.
Trace logs?
No response
Operating system?
MacOS
Architecture?
arm64

We already don't check for a new version when running activate: https://github.com/moonrepo/proto/blob/master/crates/cli/src/session.rs#L33
Perhaps something else is running? Hard to tell without logs.

Closing this since it's not reproducable.


Implement support for CFA information

Section 6.4 of the DWARF 4 standard.

Going to work on this, now that it seems like @tromey is pretty close to having expressions landable.

Also, http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/ehframechpt.html (I think that is the most up to date version of the .eh_frame spec)
Is it worth supporting .debug_frame in addition to .eh_frame? It seems like everything uses the latter these days, AFAICT...
@tromey perhaps you might know?

Is it worth supporting .debug_frame in addition to .eh_frame? It seems like everything uses the latter these days, AFAICT...

I think we want both. Can't rely on either one always existing.
Probably want to also support .ARM.exidx and .ARM.extab for arm/android... Although maybe that should be a different crate?

Probably want to also support .ARM.exidx and .ARM.extab for arm/android... Although maybe that should be a different crate?

http://infocenter.arm.com/help/topic/com.arm.doc.ihi0038b/IHI0038B_ehabi.pdf


Low performance drawing "rounded" shapes

Noticed low performance when drawing circle or rounded rectangle.
PS: This is awesome project 👍

I've finally replaced my hacky rounded shape drawing code, which was slow because it drew a ton of rectangles in a silly way, with WebGL code which also supports shape styles! It should be considerably faster now.
It could also be optimized further by not generating so many points for the polygons, if need be.


Google as OIDC provider

I'm attempting to use Google as our OIDC provider and I'm having a hard time getting it to work. I'm getting the following error in my browser:
server error trace = 09950d64-d4ac-48e5-a7f2-66eba2641060
With loglevel set to debug I see no errors in the console.
My config.yaml:
wireguard:
  privateKey: "xxx"
dns:
  upstream:
    - "<IP_ADDRESS>"
auth:
  # HTTP Basic Authentication
#  basic:
    # Users is a list of htpasswd encoded username:password pairs
    # supports BCrypt, Sha, Ssha, Md5
    # You can create a user using "htpasswd -nB <username>"
#    users: []
  oidc:
    # A name for the backend (can be anything you want)
    name: "Google"
    # Should point to the OIDC Issuer (excluding /.well-known/openid-configuration)
    issuer: "https://accounts.google.com"
    # Your OIDC client credentials which would be provided by your OIDC provider
    clientID: "xxx.apps.googleusercontent.com"
    clientSecret: "xxx"
    # List of scopes to request defaults to ["openid"]
    scopes:
      - openid
    # The full redirect URL
    # The path can be almost anything as long as it doesn't
    # conflict with a path that the web UI uses.
    # /callback is recommended.
    redirectURL: "https://vpn.example.com/callback"
    # You can optionally restrict access to users with an email address
    # that matches an allowed domain.
    # If empty or omitted then all email domains will be allowed.
#    emailDomains:
#      - example.com
    # This is an advanced feature that allows you to define
    # OIDC claim mapping expressions.
    # This feature is used to define wg-access-server admins
    # based off a claim in your OIDC token
    # See https://github.com/Knetic/govaluate/blob/9aa49832a739dcd78a5542ff189fb82c3e423116/MANUAL.md for how to write rules
#    claimMapping:
#      admin: "'Admins' in group_membership"

My docker-compose.yaml:

version: "3.0"
networks:
  proxy:

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    restart: unless-stopped
    networks:
      - proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - "/var/run/docker.sock:/tmp/docker.sock:ro"
      - "./letsencrypt/certs:/etc/nginx/certs"
      - "./letsencrypt/vhost-d:/etc/nginx/vhost.d"
      - "./letsencrypt/html:/usr/share/nginx/html"

  letsencrypt-proxy:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: letsencrypt-proxy
    restart: unless-stopped
    networks:
      - proxy
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "./letsencrypt/certs:/etc/nginx/certs"
      - "./letsencrypt/vhost-d:/etc/nginx/vhost.d"
      - "./letsencrypt/html:/usr/share/nginx/html"
    environment:
      DEFAULT_EMAIL<EMAIL_ADDRESS>      NGINX_PROXY_CONTAINER: "nginx-proxy"

  wg-access-server:
    image: place1/wg-access-server
    container_name: wg-access-server
    restart: unless-stopped
    networks:
      - proxy
    volumes:
      - "./wireguard/data:/data"
      - "./wireguard/config.yaml:/config.yaml"
    ports:
      #- "8000:8000/tcp"
      - "51820:51820/udp"
    cap_add:
      - NET_ADMIN
    devices:
      - "/dev/net/tun:/dev/net/tun"
    environment:
      VIRTUAL_HOST: "vpn.example.com"
      LETSENCRYPT_HOST: "vpn.example.com"
      VIRTUAL_PORT: "8000"
      VIRTUAL_PROTO: "http"
      WG_ADMIN_USERNAME: admin
      WG_ADMIN_PASSWORD: ${WG_ADMIN_PASSWORD}
      WG_EXTERNAL_HOST: "https://vpn.example.com"
      WG_PORT: "8000"
      WG_STORAGE: "sqlite3:///data/db.sqlite3"
      WG_WIREGUARD_INTERFACE: "wg1"
      WG_WIREGUARD_PORT: "51820"
      WG_VPN_CIDR: "<IP_ADDRESS>/24"
      WG_VPN_GATEWAY_INTERFACE: "eth0"
      WG_VPN_ALLOWED_IPS: "<IP_ADDRESS>/24, 10.XX.XX.0/24"
      WG_DNS_ENABLED: "true"
      WG_DNS_UPSTREAM: "<IP_ADDRESS>"
#      WG_WIREGUARD_PRIVATE_KEY: ${WG_WIREGUARD_PRIVATE_KEY}

I'll need some logs from wg-access-server to debug this.
From the config you've pasted here I can't see any mistakes.
If the browser is showing "server error trace" then a corresponding set of logs should be available from wg-access-server's stdout.

I'll need some logs from wg-access-server to debug this.
From the config you've pasted here I can't see any mistakes.
If the browser is showing "server error trace" then a corresponding set of logs should be available from wg-access-server's stdout.

@Place1 we are experiencing this issue also with some of our users but not all. There is not log attached when it pops up.

@Place1 we are experiencing this issue also with some of our users but not all. There is not log attached when it pops up.


Fix parsing of shows, searching of a show, and remade home page

Coverage increased (+6.5%) to 95.833% when pulling efc5e794b5242cb570851705afd8a1ad4d1c4a4f on dev into ac3af77d128f74d7ccd554ed5c0b1ad5cca87e7b on master.


feat: make x-zitadel-orgid optional (resource owner by default)

header will only be needed if an other org / multiple orgs a necessary

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


create container for testing/dev

@vors
I believe the benefit here would be lowering the bar for new/occasional contributors?
Not sure if bundling st would violate its EULA.

:+1:

Abondaned in favor of https://github.com/PowerShell/EditorSyntax


VideoRehabService: Add full users / participants / devices names in session events

Session events generated by the VideoRehabService (join, leave, stop sessiosn) only includes the UUID, making it uninteresting to display. Full name should be fetched and managed in events.

Will need a call to api/services/[user, participant, device] to get names.


#103 | Changed link of the github link

Changelist

Refactored data processing for readability
Changed link to GitHub repo

Fixed issues
TODO

[ ] Travis build succeeds
[x] Assigned reviewer (preffered reviewer GerwinBosch)

Removed app.test.js as it provided an error with the environment it got tested at

Too much messing around with other stuff


#472 Promise Queue

I've run into an odd error where I'm getting an unhandledRejection error on a rejection that is handled. I think that the promise structure I'm using may have confused lie (or, more likely, I'm just confused). For the moment I've disabled the test for the error but I'm concerned that the error could cause a failure in the CI environment. Let's see!

PR is added to the queue for testing as 1. task. (92c3c91)

@yaronyg have you tried with the base ES6 Promise using Node v4+ to see if it is a problem with lie or your implementation in general?

Test (Fail) 56672827 build is completed (92c3c91)
See https://github.com/ThaliTester/TestResults/tree/5667282792c3c91__472_Promise_Queue_yaronyg/ for the logs

@mattpodwysocki An excellent idea. I just tried it out and it works fine with ES6 on Node 4. See https://github.com/calvinmetcalf/lie/issues/30 for the details.

Test (Fail) 56672827 build is completed (92c3c91)
See https://github.com/ThaliTester/TestResults/tree/5667282792c3c91__472_Promise_Queue_yaronyg/ for the logs

PR is added to the queue for testing as 1. task. (b6f75d5)

Test (Success) 56672827 build is completed (b6f75d5)
See https://github.com/ThaliTester/TestResults/tree/56672827b6f75d5__472_Promise_Queue_yaronyg/ for the logs

PR is added to the queue for testing as 2. task. (039a409)

@vjrantal Please review

Test (Success) 56672827 build is completed (039a409)
See https://github.com/ThaliTester/TestResults/tree/56672827039a409__472_Promise_Queue_yaronyg/ for the logs

Test 56672827b6f75d5(b6f75d5) has failed
See https://github.com/ThaliTester/TestResults/tree/56672827b6f75d5__472_Promise_Queue_yaronyg/ for the fail logs

Test<PHONE_NUMBER>9a409(039a409) has failed
See https://github.com/ThaliTester/TestResults/tree/56672827039a409__472_Promise_Queue_yaronyg/ for the fail logs

Reviewed 2 of 2 files at r2, 1 of 1 files at r3.
Review status: all files reviewed at latest revision, 5 unresolved discussions.

test/www/jxcore/bv_tests/testPromiseQueue.js, line 7 [r3] (raw file):
For consistency, unHandled might not require camel-casing.

test/www/jxcore/bv_tests/testPromiseQueue.js, line 26 [r3] (raw file):
This function might not provide that much value, because at least based on my testing, the tape implementation we use already prints the expected and actual values in case they differ.

test/www/jxcore/bv_tests/testPromiseQueue.js, line 77 [r3] (raw file):
A typo in thirdPromis6e.

thali/NextGeneration/promiseQueue.js, line 13 [r3] (raw file):
By the way, do we have any file name convention for this kind of cases? Somehow, it would feel more natural that the file name would be starting with a capital letter in case requiring it returns a "class-like" and "new'able" -object.

thali/NextGeneration/promiseQueue.js, line 31 [r3] (raw file):
Why is this null assignment done?

Comments from the review on Reviewable.io

Review status: all files reviewed at latest revision, 5 unresolved discussions.

test/www/jxcore/bv_tests/testPromiseQueue.js, line 7 [r3] (raw file):
I thought in Javascript both variables and methods use camel casing? Classes use pascal casing and constants use all upper case? In which case isn't this variable named correctly?

test/www/jxcore/bv_tests/testPromiseQueue.js, line 26 [r3] (raw file):
100% agree. My mistake.

test/www/jxcore/bv_tests/testPromiseQueue.js, line 77 [r3] (raw file):
fixed

thali/NextGeneration/promiseQueue.js, line 13 [r3] (raw file):
Right now all of our file names are camel case but TCPServersManager which is just silly. We aren't even consistent with ourselves! So I fixed tcpServersManager to also be lower case.
If you want to come up with general naming conventions that aren't "just give files a camel case name" then I'm up for it but that should be filed as a separate bug.

thali/NextGeneration/promiseQueue.js, line 31 [r3] (raw file):
Because it feels less icky? I just hate "PromiseQueue.prototype.globalPromise;" I realize that Javascript will automatically make it null but it just feels so... icky.  Old dogs don't learn new tricks? It makes me feel warm and fuzzy inside to intentionally initialize variables? I don't have a good argument here. I just like it. :(

Comments from the review on Reviewable.io

PR is added to the queue for testing as 1. task. (62e056f)

Test (Success) 56672827 build is completed (62e056f)
See https://github.com/ThaliTester/TestResults/tree/5667282762e056f__472_Promise_Queue_yaronyg/ for the logs

Reviewed 6 of 6 files at r4.
Review status: all files reviewed at latest revision, 1 unresolved discussion.

test/www/jxcore/bv_tests/testPromiseQueue.js, line 7 [r3] (raw file):
What I meant was that above you have variable called unhandledRejectionHandler, but the name of the function starts unHandled (big H). Since this is so minor thing, no need to fix :)

Comments from the review on Reviewable.io

Test<PHONE_NUMBER>e056f(62e056f) has failed
See https://github.com/ThaliTester/TestResults/tree/5667282762e056f__472_Promise_Queue_yaronyg/ for the fail logs

Review status: :shipit: all files reviewed at latest revision, all discussions resolved, all commit checks successful.

test/www/jxcore/bv_tests/testPromiseQueue.js, line 7 [r3] (raw file):
AAAAAHHHH!!! Sorry... I didn't see that. I will fix this in the mondo checkin for #317

Comments from the review on Reviewable.io

@yaronyg could we make this its own NPM module instead of keeping it internally?

@mattpodwysocki seems like a bunch of work for 90 lines of code. Is it really worth it?

@yaronyg absolutely even if just one person finds it useful then it's well worth it. I've done the same with parts of RxJS throwing them out into the open and people have been using them with great success

@mattpodwysocki O.k. I'll file a bug on it. But we must not do this right now. If it isn't for March, it doesn't happen.


Question regarding namespaces for Helm deployment with a level-0 logical cloud

Hello,
I'm currently using EMCO to deploy Helm charts on a level-0 logical cloud.
From what I understood, a level-1 logical cloud has only one namespace (consistent across multiple clusters), so the apps deployed on this level-1 logical cloud will be deployed on this namespace.
However, with a level-0 logical cloud, I haven't found how to specify the deployment's namespace ? (Something similar to the --namespace flag of an Helm release).
Is it currently possible to specify a specific namespace when deploying on a level-0 logical cloud ? If so, does it need to be created beforehand (or is there an equivalent of Helm's --create-namespace)?

Currently we don't support specifying namespace when creating level-0 logical cloud. What will be the priority for you for this feature? We can extend the existing functionality of creating a logical cloud without specifying any user name, user permissions or quotas. This can create a namespace across all clusters.

I am not sure of the priority of such feature, on the one hand, not being able to deploy to a namespace different from "default" on a level-0 logical cloud is an important shortcoming for level-0 logical clouds.
On the other hand, you can achieve that with level-1 logical cloud, which might be a more sensible way of managing clusters than level-0 logical clouds.

Hi @BaudouinH, yes, currently EMCO assumes "default" as the namespace for L0 (we plan on making this more flexible, in the future,.. or at least transparently pass over the namespace from the kubeconfig specified when creating the clusters). The end goal of L0 is to give full access to the cluster (think admin/infra owner), not just a particular namespace. We are working to achieve the right layering.


Identifier descriptions

Updated docker image used for protocgenerator. We need this latest version to allow enum types as URL parameters
Added new type NamedEntityMetadata
Added metadata field to NamedEntityIdentifier
Added endpoints for getting/updating metadata

@katrogan I reworked it so that

We have a new NamedEntity message, which includes an id and a metadata field. This can be expanded in the future
We have a new request/response type for listing
We have a new endpoint for listing, which uses an enum value as a path parameter. So we only need one endpoint to handle listing entities for any type
I updated my metadata endpoints to be a get/update for a NamedEntity. This allows us to update additional fields with the same request later if needed. (I don't plan to allow modification of the id or resource type)

Please give it one more look and let me know if anything seems strange. Thanks!


BMI160 secondary interface

hi, @BoschSensortec
Q0：
"It is assumed that secondary interface of bmi160 has external pull-up resistor in order to access the auxiliary sensor bmm150."  it's from https://github.com/BoschSensortec/BMI160_driver
but the data sheet says there's no other resistor needed???
do i need pullup resistors when i use BMI160's secondary interface ?
Q1：
I have followed your instruction, and i can read the id of BMI160,
but after this statement "rslt = bmi160_aux_init(&sensor);",
in this function "bmm150_init(&bmm150)"
after /* Power up the sensor from suspend to sleep mode */
i still can't read the id of BMM150, is always 0x00???
and i check the register 0x1B bit2, there's  a manul magnetometer interface operation via MAG_IF[].
But i can't read the right ID form BMM150, SO i  think there's something wrong with the IIC interface,
between BMI160 and BMM150???

Hi @leetoun ,
The auxiliary I2C interface between the BMI160 and the BMM150 needs pull-up resistors. Do you already have these pull-ups connected?

@BoschSensortec
Thank you very much!
I'll have a try about that.
May you have a good day!

@Unario ,
Burst write or continuous write within a single CSB low transaction is not possible while you are in suspend mode. Find the related note in Chapter 2.2 Power modes of the datasheet.
In order to enable burst writes, put the sensor in normal mode, configure the sensor and then put it back to suspend until needed at a later point in time.

@Unario ,
In addition, the API explicitly handles this case related to low power and suspend modes. The typical point of failure here is the delay API.


Feature/regroup mechanic

Added tests and bug fix for the regroup phase.

A couple of small tests to ensure that claim > pass and pass > pass also start the regroup phase. Do we also want to include tests for phase specific effects rolling off here such as chirruts ability or on defeats caused by health buffs rolling off?

A couple of small tests to ensure that claim > pass and pass > pass also start the regroup phase. Do we also want to include tests for phase specific effects rolling off here such as chirruts ability or on defeats caused by health buffs rolling off?

Thanks for the comment!
I think the claim > pass and pass > pass tests are included in the initiative spec I figured it makes more sense having them there. This is a personal opinion but I think chirruts should be handled in its own spec while I agree for the defeats and stat modifiers rolling off that they should be included I'll add them.

A couple of small tests to ensure that claim > pass and pass > pass also start the regroup phase. Do we also want to include tests for phase specific effects rolling off here such as chirruts ability or on defeats caused by health buffs rolling off?

A couple of small tests to ensure that claim > pass and pass > pass also start the regroup phase. Do we also want to include tests for phase specific effects rolling off here such as chirruts ability or on defeats caused by health buffs rolling off?

Thanks for the comment! I think the claim > pass and pass > pass tests are included in the initiative spec I figured it makes more sense having them there. This is a personal opinion but I think chirruts should be handled in its own spec while I agree for the defeats and stat modifiers rolling off that they should be included I'll add them.

This makes sense to me


Add 'availableUpgrades' field to Resources

Part of #3118
What is being addressed
Added availableUpgrades property to Resources.
The field lists versions of the template that are available for upgrade, and it contains 2 fields:
majorVersions - higher template versions that require passing the force_version_update flag
nonMajorVersions - higher template versions that don't require passing the force_version_update flag
How is this addressed

Added the availableUpgrades field
Went over all the GET and GET all routes and added a call to the enrichment logic to populate the value
Fixed and added tests

/test

/test


Extending

You can extend using https://github.com/kankburhan/gampung.
Also, I found many additional yaml files in https://github.com/adampielak/nuclei-templates

templates added


feature(source-plugins): implement source plugins

This is a draft, don't merge this yet.

Ready to merge!

:rocket: PR was released in v0.5.0 :rocket:


Migrations: DefaultValue created for PK on a pk/fk model change

This may be a weird scenario and not worthy of an issue but instead a "really, Julie?" for me. Take your pick. :)
I defined a one to one relationship the "old" way where I had the "dependent" class using its key as the FK to it's principal.
This resulted in a table with a PK FK column as expected.
Then, when I learned that in EF7 we can have our cake and eat it too, Since my original PK was not named using convention, I wanted this to remain an FK and then I added in a conventional key property named ID.
Then I added a migration..
The migration removed the PK from the original property (it was not named using convention so became the obvious FK).
And then it created a new PK field. But the PK field was defined more fully than it would normally be and included the defaultvalue . When I tried to apply the migration, Sql server complained about a default value on a PK. Here is that bit from the migration.
migrationBuilder.AddColumn<int>(
            name: "Id",
            table: "SecretIdentity",
            nullable: false,
            defaultValue: 0)
            .Annotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
        migrationBuilder.AddPrimaryKey(
            name: "PK_SecretIdentity",
            table: "SecretIdentity",
            column: "Id");
    }

If I edit the migration to remove the defaultvalue, it's fine. But then isn't my snapshot out of sync? (different question, I know...sorry)

just for clarity, if I rolled migrations and the database to before I added that class and just created a migration that read the class that had separate PK and FK, the migration is perfectly fine. It was just that strange adjustment that I made from having a single property be both PK and FK then migrating that to the two separate properties.

Good bug. We set a default value for any column that gets added and isn't nullable. This is just a Migrations thing and isn't part of the model metadata, so the model snapshot should remain valid.
It looks like SQL Server should ignore the default value for primary keys. It will only work end-to-end if there are no rows in table unless you write a custom step to copy the old key values.

nothing like a bizarre edge case ;)

..does beg the question about manually editing migrations though (wrt snapshots). Is that covered somewhere? Obviously doesn't belong hidden in this thread.

Migrations are intended to be editable. The database should more-or-less match the model you've defined, but there's nothing enforcing that but you.
For example, required properties could map to nullable columns, foreign key constraints could be removed for better performance, etc. So long as the data EF reads in is consistent with the model you've defined everything will work. :smile:
I think we have issues in our docs repo to write more documentation on Migrations.

We don't really expect folks to hit this, but we will fix in the future if we see customers hitting it.


How do we authenticate with digital ocean managed registry?

How do we authenticate with digital ocean managed registry?

Hi @adambirds !
Have you tried it? https://aquasecurity.github.io/trivy/v0.56/docs/advanced/private-registries/

Yes, managed to get sorted. Thanks


No Module Named pysqlite2?

Expected behaviour:
Start flexget in daemon mode (or any other mode).

Actual behavior/Steps to reproduce:
flexget  complains that pysqlite isn't installed
~/.flexget  (master)
deluge@deluge  2015$ flexget daemon start -d
FATAL: Unable to use SQLite. Are you running Python 2.7, 3.3 or newer ?
Python should normally have SQLite support built in.
If you're running correct version of Python then it is not equipped with SQLite.
You can try installing `pysqlite`. If you have compiled python yourself, recompile it with SQLite support.
Error: No module named pysqlite2

~/.flexget  (master)
deluge@deluge  2016$ sudo pkg install pysqlite
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
pkg: No packages available to install matching 'pysqlite' have been found in the repositories

~/.flexget  (master)
deluge@deluge  2018$ sudo pkg install py27-sqlite3
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
Checking integrity... done (0 conflicting)
The most recent version of packages are already installed

Config:
Here is a link to my config
Log:
Even with log level set to debug nothing is placed in the log.
Additional information:

FlexGet version:

deluge@deluge  2001$ flexget -V
2.12.9
You are on the latest release.

Python version:

deluge@deluge  2004$ python2.7 -V
Python 2.7.14

Installation method:

sudo pip install --upgrade flexget

Using daemon (yes/no): yes
OS and version:

deluge@deluge  2005$ uname -a
FreeBSD deluge.sysfs.local 11.1-RELEASE-p6 FreeBSD 11.1-RELEASE-p6 #0 r326737M: Sun Dec 10 00:45:11 CET 2017     root@dev.nas4free.org:/usr/obj/nas4free/usr/src/sys/NAS4FREE-amd64  amd64

Link to crash log:

deluge@deluge  2009$ flexget daemon start -d
FATAL: Unable to use SQLite. Are you running Python 2.7, 3.3 or newer ?
Python should normally have SQLite support built in.
If you're running correct version of Python then it is not equipped with SQLite.
You can try installing `pysqlite`. If you have compiled python yourself, recompile it with SQLite support.
Error: No module named pysqlite2

The error message is quite clear on this, python is expected to have sqlite built in. This is not a FlexGet related issue.

https://stackoverflow.com/questions/1210664/no-module-named-sqlite3

For anyone else using FreeBSD (or a derivative) the solution that fixed rhe situation for me was as follows.

navigate to /usr/ports/databases/sqlite3/
make deinstall
sudo make install clean ALLOW_UNSUPPORTED_SYSTEM=true
reboot jail

This worked for me using python 3.7 pkg install py37-sqlite3-3.7.9_7


do not copy file bytes if it is not regular file (no mode bits are set)

Codecov Report

Merging #24 into master will decrease coverage by 0.43%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master      #24      +/-   ##
==========================================
- Coverage   44.08%   43.64%   -0.44%
==========================================
  Files           5        5
  Lines         397      401       +4
==========================================
  Hits          175      175
- Misses        197      199       +2
- Partials       25       27       +2

Impacted Files
Coverage Δ

cache_archive.go
28.14% <0%> (-0.86%)
: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 7f7710f...02695fa. Read the comment docs.


DNS over UDP Tor

Which Cloudflare product does this pertain to?
DNS
Existing documentation URL(s)
https://developers.cloudflare.com/<IP_ADDRESS>/other-ways-to-use-<IP_ADDRESS>/dns-over-tor/
Section that requires update
DNS over UDP
What needs to change?
This section doens't work or i didn't understand how it's work.
Here the log error:
socat -d -d -d UDP-LISTEN:533,fork SOCKS4A:<IP_ADDRESS>:<IP_ADDRESS>:443,socksport=9150
2022/06/08 17:21:18 socat[772691] I socat by Gerhard Rieger and contributors - see www.dest-unreach.org
2022/06/08 17:21:18 socat[772691] I This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)
2022/06/08 17:21:18 socat[772691] I This product includes software written by Tim Hudson<EMAIL_ADDRESS>2022/06/08 17:21:18 socat[772691] I setting option "fork" to 1
2022/06/08 17:21:18 socat[772691] I socket(2, 2, 17) -> 5
2022/06/08 17:21:18 socat[772691] N listening on UDP AF=2 <IP_ADDRESS>:533

2022/06/08 17:21:21 socat[772691] N accepting UDP connection from AF=2 <IP_ADDRESS>:40234
2022/06/08 17:21:21 socat[772691] I permitting UDP connection from AF=2 <IP_ADDRESS>:40234
2022/06/08 17:21:21 socat[772691] N forked off child process 772696
2022/06/08 17:21:21 socat[772691] I close(5)
2022/06/08 17:21:21 socat[772691] I still listening
2022/06/08 17:21:21 socat[772691] I socket(2, 2, 17) -> 5
2022/06/08 17:21:21 socat[772691] N listening on UDP AF=2 <IP_ADDRESS>:533
2022/06/08 17:21:21 socat[772696] I just born: child process 772696
2022/06/08 17:21:21 socat[772696] I close(4)
2022/06/08 17:21:21 socat[772696] I close(3)
2022/06/08 17:21:21 socat[772696] I setting option "socksport" to "9150"
2022/06/08 17:21:21 socat[772696] N opening connection to AF=2 <IP_ADDRESS>:9150
2022/06/08 17:21:21 socat[772696] N opening connection to <IP_ADDRESS>:443 via socks4 server <IP_ADDRESS>:9150 as user "root"
2022/06/08 17:21:21 socat[772696] I socket(2, 1, 6) -> 6
2022/06/08 17:21:21 socat[772696] N successfully connected from local address AF=2 <IP_ADDRESS>:58102
2022/06/08 17:21:21 socat[772696] I sending socks4a request VN=4 DC=1 DSTPORT=443 DSTIP=<IP_ADDRESS> USERID=root DESTNAME=<IP_ADDRESS>
2022/06/08 17:21:21 socat[772696] I waiting for socks reply
2022/06/08 17:21:21 socat[772696] I received socks reply VN=0 CD=91 DSTPORT=0 DSTIP=<IP_ADDRESS>
2022/06/08 17:21:21 socat[772696] E socks: connect request rejected or failed
2022/06/08 17:21:21 socat[772696] N exit(1)
2022/06/08 17:21:21 socat[772696] I shutdown(5, 2)
2022/06/08 17:21:21 socat[772696] I shutdown(6, 2)
2022/06/08 17:21:21 socat[772691] N childdied(): handling signal 17
2022/06/08 17:21:21 socat[772691] I childdied(signum=17)
2022/06/08 17:21:21 socat[772691] I childdied(17): cannot identify child 772696
2022/06/08 17:21:21 socat[772691] I waitpid(): child 772696 exited with status 1
2022/06/08 17:21:21 socat[772691] I waitpid(-1, {}, WNOHANG): No child processes
2022/06/08 17:21:21 socat[772691] I childdied() finished
2022/06/08 17:21:26 socat[772691] N accepting UDP connection from AF=2 <IP_ADDRESS>:40234
2022/06/08 17:21:26 socat[772691] I permitting UDP connection from AF=2 <IP_ADDRESS>:40234
2022/06/08 17:21:26 socat[772691] N forked off child process 772697
2022/06/08 17:21:26 socat[772691] I close(5)
2022/06/08 17:21:26 socat[772691] I still listening
2022/06/08 17:21:26 socat[772691] I socket(2, 2, 17) -> 5
2022/06/08 17:21:26 socat[772691] N listening on UDP AF=2 <IP_ADDRESS>:533
2022/06/08 17:21:26 socat[772697] I just born: child process 772697
2022/06/08 17:21:26 socat[772697] I close(4)
2022/06/08 17:21:26 socat[772697] I close(3)
2022/06/08 17:21:26 socat[772697] I setting option "socksport" to "9150"
2022/06/08 17:21:26 socat[772697] N opening connection to AF=2 <IP_ADDRESS>:9150
2022/06/08 17:21:26 socat[772697] N opening connection to <IP_ADDRESS>:443 via socks4 server <IP_ADDRESS>:9150 as user "root"
2022/06/08 17:21:26 socat[772697] I socket(2, 1, 6) -> 6
2022/06/08 17:21:26 socat[772697] N successfully connected from local address AF=2 <IP_ADDRESS>:58124
2022/06/08 17:21:26 socat[772697] I sending socks4a request VN=4 DC=1 DSTPORT=443 DSTIP=<IP_ADDRESS> USERID=root DESTNAME=<IP_ADDRESS>
2022/06/08 17:21:26 socat[772697] I waiting for socks reply
2022/06/08 17:21:26 socat[772697] I received socks reply VN=0 CD=91 DSTPORT=0 DSTIP=<IP_ADDRESS>
2022/06/08 17:21:26 socat[772697] E socks: connect request rejected or failed
2022/06/08 17:21:26 socat[772697] N exit(1)
2022/06/08 17:21:26 socat[772697] I shutdown(5, 2)
2022/06/08 17:21:26 socat[772697] I shutdown(6, 2)
2022/06/08 17:21:26 socat[772691] N childdied(): handling signal 17
2022/06/08 17:21:26 socat[772691] I childdied(signum=17)
2022/06/08 17:21:26 socat[772691] I childdied(17): cannot identify child 772697
2022/06/08 17:21:26 socat[772691] I waitpid(): child 772697 exited with status 1
2022/06/08 17:21:26 socat[772691] I waitpid(-1, {}, WNOHANG): No child processes
2022/06/08 17:21:26 socat[772691] I childdied() finished
^C2022/06/08 17:21:49 socat[772691] N socat_signal(): handling signal 2
2022/06/08 17:21:49 socat[772691] N exiting on signal 2
2022/06/08 17:21:49 socat[772691] N socat_signal(): finishing signal 2
2022/06/08 17:21:49 socat[772691] N exit(130)

I appreciate with your help.
Thanks!
How should it change?
Can you explain a little better this section?
Thanks in advance!
Additional information
No response

Hey @glaucoperucchi. The docs were updated to reflect the fact that functionality was removed. Thanks!


Denote that names are listed alphabetically

State that the list of names are alphabetically to that its more obvious to people adding themselves to the list.

LGTM merging.


[1] Add get-requirements file with standardized terraform version

Is your feature request related to a problem? Please describe.
To avoid inconsistencies because of differing terraform versions, it would be preferable to have it standardized.
Describe the solution you'd like
Add a get-requirements.yaml file that downloads and installs a specific version of terraform. See the apps repo for an example.
Describe alternatives you've considered
Additional context
Currently terraform v0.14.x works fine with kubespray, but we would like to move to a more recent version, specifically v1.3.5. However, it would have to be tested to make sure it doesn't cause any issues.
Definition of done:
There is a get-requirements.yaml that downloads and installs v1.3.5 of terraform, unless there is a good argument for a different version.

We had a discussion in the office and thought it make more sense to go with terraform 1.2.9 for now, that way we don't have to make a new patch release for ck8s-kubespray to fix the experimental feature issue we ran into with terraform 1.3+. This way we are also closer to what the upstream kubespray repo is using.


Question about versioning

Thanks for your work on io_uring, its a really stellar interface! I'm working on wrapping liburing in a Rust library to make it accessible from Rust (as well as higher level memory-safe integrations into our async/.await ecosystem, which haven't born fruit yet).
First, I just want to confirm this is the best place for you to receive questions & pull requests. Let me know if not.
My main question: what is the backwards compatibility story for liburing right now? In general, would you say you will not remove or break APIs exposed by liburing (excepting obviously __ functions for example)? I noticed that you recently removed the syscall helpers from liburing, but I think that was a special case because you expect them to be upstreamed to glibc.
I'm asking to determine my own versioning for my Rust wrappers. Most Rust users use cargo to perform version resolution for them, and cargo makes strong assumptions about backwards compatibility between "semver compatible" versions, so I just need to figure out if I should prepare for possible breaking changes between updates to liburing.

Thanks! In general, I try not to break anything, ever. What worked with liburing 0.1 should also work with 0.3 (when that's released, in a week or two) without any changes needed on the application side. The syscall wrappers were indeed an exception, and honestly those should only have been used by liburing to begin with. So for strong cases, I might make an exception. We're getting pretty far down the line at this point and folks are relying on it, so I try to take the compatibility aspect seriously. Coming from a kernel background where we never break ABI (knowingly), this is what I intend to do for liburing as well.
I'm fine with using github for discussion and issues, it's been working OK so far. Ditto for pull requests, as long as the commits in the pull request adhere to the style used in liburing already (one line title, 72/74 chars wide at most, decent commit message, and signed-off-by at the end).

Sounds great! That's what I hoped your policy was.
Are there any other definitions exposed through the header files that are meant to be private but not prefixed with _? I'll make sure not to re-export them if so.

One last question, what's the best way to be notified when you release a new version of liburing? Right now I've been proactively tracking git master, but in the longer term I'd like to only depend on release versions of liburing and to be notified when a new version is coming out.

Are there any other definitions exposed through the header files that are meant to be private but not prefixed with _? I'll make sure not to re-export them if so.

Just the single io_uring_get_cqe() declaration and export, but that should already be covered under the " is not really meant to be used directly" clause.

For notifications, not sure but doesn't github support getting notified when a new release is tagged? If it does, that would probably be the easiest way. I've seen you on twitter as well, and I will announce releases there too, but that's more likely to drown in noise, I'm sure...

Just the single io_uring_get_cqe() declaration and export, but that should already be covered under the " is not really meant to be used directly" clause.

Was also clear from its __ prefix! Thanks so much!


LB IP is not available after long time running

Describe the bug
When running LoxiLB outside the cluster and publishing VIP using GARP, the VIP cannot be connected after a long period of time (preliminary judgment is that the VIP address in NLP is lost and not automatically added).
I have found this problem several times, most recently with the Ingress-Nginx service using a static LB address.
Deleting the service and re-creating it with the original IP address does not solve the problem;
Deleting the service and using a new IP address solves the problem;
To Reproduce
Long-term running
Expected behavior
LoxiLB can check whether the LB IP is in the lo interface. If not, it will be automatically added. Or find the root cause.
Screenshots
LB VIP is “<IP_ADDRESS>”, No log of "nlp: Address <IP_ADDRESS>/32 Port lo added" is seen, and the network shows no ARP response.
2024-11-26 10:48:03 api: lbRules : {{<IP_ADDRESS>  80 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 80 1  }]}
2024-11-26 10:48:03 ep-host added <IP_ADDRESS>_tcp_80:0
2024-11-26 10:48:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-26 10:48:03 rt added - <IP_ADDRESS>/32:root mark:
2024-11-26 10:48:03 ifa added <IP_ADDRESS>:llb-rule-<IP_ADDRESS>
2024-11-26 10:48:03 lb-rule added - 7:dst-<IP_ADDRESS>/32,proto-6,dport-80,-do-fullnat:onearm:eip-<IP_ADDRESS>,ep-80,w-1,alive|
2024-11-26 10:48:03 api: lbRules : {{<IP_ADDRESS>  443 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 443 1  }]}
2024-11-26 10:48:03 ep-host added <IP_ADDRESS>_tcp_443:1
2024-11-26 10:48:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-26 10:48:03 lb-rule added - 6:dst-<IP_ADDRESS>/32,proto-6,dport-443,-do-fullnat:onearm:eip-<IP_ADDRESS>,ep-443,w-1,alive|
2024-11-26 10:48:03 api: lbRules : {{<IP_ADDRESS>  80 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  }]}
2024-11-26 10:48:03 ep-host added <IP_ADDRESS>_tcp_80:2
2024-11-26 10:48:03 ep-host added <IP_ADDRESS>_tcp_80:3
2024-11-26 10:48:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-26 10:48:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-26 10:48:03 lb-rule updated - dst-<IP_ADDRESS>/32,proto-6,dport-80,:do-fullnat:onearm:eip-<IP_ADDRESS>,ep-80,w-1,alive|eip-<IP_ADDRESS>,ep-80,w-1,alive|eip-<IP_ADDRESS>,ep-80,w-1,alive|
2024-11-26 10:48:03 api: lbRules : {{<IP_ADDRESS>  443 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  }]}
2024-11-26 10:48:03 ep-host added <IP_ADDRESS>_tcp_443:0
2024-11-26 10:48:03 ep-host added <IP_ADDRESS>_tcp_443:1
2024-11-26 10:48:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-26 10:48:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-26 10:48:03 lb-rule updated - dst-<IP_ADDRESS>/32,proto-6,dport-443,:do-fullnat:onearm:eip-<IP_ADDRESS>,ep-443,w-1,alive|eip-<IP_ADDRESS>,ep-443,w-1,alive|eip-<IP_ADDRESS>,ep-443,w-1,alive|
2024-11-26 10:48:03 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-26 10:48:03 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-26 10:48:03 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-26 10:48:03 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-26 10:48:04 inactive ep - <IP_ADDRESS>_tcp_80:tcp:80(next try after 10s)
2024-11-26 10:48:04 inactive ep - <IP_ADDRESS>_tcp_80:tcp:80(next try after 10s)
2024-11-26 10:48:04 inactive ep - <IP_ADDRESS>_tcp_443:tcp:443(next try after 10s)
2024-11-26 10:48:04 inactive ep - <IP_ADDRESS>_tcp_80:tcp:80(next try after 10s)
2024-11-26 10:48:04 inactive ep - <IP_ADDRESS>_tcp_443:tcp:443(next try after 10s)
2024-11-26 10:48:04 inactive ep - <IP_ADDRESS>_tcp_443:tcp:443(next try after 10s)
2024-11-26 10:48:04 api: lbRules : {{<IP_ADDRESS>  80 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  }]}
2024-11-26 10:48:04 api: Error occur : lbrule-exists error
2024-11-26 10:48:04 api: lbRules : {{<IP_ADDRESS>  443 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  }]}
2024-11-26 10:48:04 api: Error occur : lbrule-exists error

Environment (please complete the following information):

OS: Flatcar CoreOS
Kernel Version: 6.6.60
LoxiLB Version: latest
K8s Version: 1.31.3

Additional context
I don't know how to locate this problem because it takes a long time to find it.

@6547709 Can you please confirm if there are any HA state changes when this behavior is seen ?

In fact, I have redeployed LoxiLB, but the original static LB IP is still not available. Now here are the information and logs when the problem occurs;
core@LoxiLB-02 ~ $ docker exec -it loxilb loxicmd get ip
|     DEVICE NAME      |          IP ADDRESS          |
|----------------------|------------------------------|
| docker0              | <IP_ADDRESS>/16                |
| ens192               | <IP_ADDRESS>/24               |
|                      | fe80::250:56ff:fe88:1e5c/64  |
| ens224               | <IP_ADDRESS>/16                |
|                      | fe80::250:56ff:fe88:93a/64   |
| llb-rule-<IP_ADDRESS> | <IP_ADDRESS>/32               |
| llb-rule-<IP_ADDRESS>  | <IP_ADDRESS>/32                |
| llb0                 | fe80::acbb:f9ff:fef1:d170/64 |
| lo                   | <IP_ADDRESS>/8                  |
|                      | ::1/128                      |
|                      | <IP_ADDRESS>/32                |
|                      | <IP_ADDRESS>/32                |
|                      | <IP_ADDRESS>/32                |
core@LoxiLB-02 ~ $ docker exec -it loxilb loxicmd get ha
| INSTANCE | HASTATE |
|----------|---------|
| default  | MASTER  |
core@LoxiLB-02 ~ $ docker exec -it loxilb /root/loxilb-io/loxilb/loxilb -v
loxilb start
loxilb version: 0.9.7-beta 2024_11_24_00h:15m-main

2024-11-27 01:24:03 api: lbRules : {{<IP_ADDRESS>  80 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  }]}
2024-11-27 01:24:03 ep-host added <IP_ADDRESS>_tcp_80:0
2024-11-27 01:24:03 ep-host added <IP_ADDRESS>_tcp_80:1
2024-11-27 01:24:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:24:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:24:03 rt added - <IP_ADDRESS>/32:root mark:
2024-11-27 01:24:03 ifa added <IP_ADDRESS>:llb-rule-<IP_ADDRESS>
2024-11-27 01:24:03 lb-rule added - 7:dst-<IP_ADDRESS>/32,proto-6,dport-80,-do-fullnat:onearm:eip-<IP_ADDRESS>,ep-80,w-1,alive|eip-<IP_ADDRESS>,ep-80,w-1,alive|
2024-11-27 01:24:03 api: lbRules : {{<IP_ADDRESS>  443 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  }]}
2024-11-27 01:24:03 ep-host added <IP_ADDRESS>_tcp_443:2
2024-11-27 01:24:03 ep-host added <IP_ADDRESS>_tcp_443:3
2024-11-27 01:24:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:24:03 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:24:03 lb-rule added - 6:dst-<IP_ADDRESS>/32,proto-6,dport-443,-do-fullnat:onearm:eip-<IP_ADDRESS>,ep-443,w-1,alive|eip-<IP_ADDRESS>,ep-443,w-1,alive|
2024-11-27 01:24:04 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-27 01:24:04 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-27 01:24:04 inactive ep - <IP_ADDRESS>_tcp_443:tcp:443(next try after 10s)
2024-11-27 01:24:04 inactive ep - <IP_ADDRESS>_tcp_443:tcp:443(next try after 10s)
2024-11-27 01:24:04 inactive ep - <IP_ADDRESS>_tcp_80:tcp:80(next try after 10s)
2024-11-27 01:24:04 inactive ep - <IP_ADDRESS>_tcp_80:tcp:80(next try after 10s)
2024-11-27 01:24:06 active ep - <IP_ADDRESS>_tcp_443:tcp:443(0s)
2024-11-27 01:24:06 active ep - <IP_ADDRESS>_tcp_80:tcp:80(0s)
2024-11-27 01:24:06 active ep - <IP_ADDRESS>_tcp_443:tcp:443(0s)
2024-11-27 01:24:06 active ep - <IP_ADDRESS>_tcp_80:tcp:80(0s)
2024-11-27 01:24:20 [CT] ent not found <IP_ADDRESS><IP_ADDRESS>11278443tcp00
2024-11-27 01:24:20 [CT] ent not found <IP_ADDRESS>.40.43.10144311278tcp00
2024-11-27 01:25:00 api: lbRules : {{<IP_ADDRESS>  80 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  }]}
2024-11-27 01:25:00 ep-host added <IP_ADDRESS>_tcp_80:0
2024-11-27 01:25:00 ep-host added <IP_ADDRESS>_tcp_80:1
2024-11-27 01:25:00 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:25:00 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:25:00 lb-rule updated - dst-<IP_ADDRESS>/32,proto-6,dport-80,:do-fullnat:onearm:eip-<IP_ADDRESS>,ep-80,w-1,alive|eip-<IP_ADDRESS>,ep-80,w-1,alive|eip-<IP_ADDRESS>,ep-80,w-1,alive|eip-<IP_ADDRESS>,ep-80,w-1,alive|
2024-11-27 01:25:01 api: lbRules : {{<IP_ADDRESS>  443 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  }]}
2024-11-27 01:25:01 ep-host added <IP_ADDRESS>_tcp_443:2
2024-11-27 01:25:01 ep-host added <IP_ADDRESS>_tcp_443:3
2024-11-27 01:25:01 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:25:01 onearm:suitable source for <IP_ADDRESS>: <IP_ADDRESS>
2024-11-27 01:25:01 lb-rule updated - dst-<IP_ADDRESS>/32,proto-6,dport-443,:do-fullnat:onearm:eip-<IP_ADDRESS>,ep-443,w-1,alive|eip-<IP_ADDRESS>,ep-443,w-1,alive|eip-<IP_ADDRESS>,ep-443,w-1,alive|eip-<IP_ADDRESS>,ep-443,w-1,alive|
2024-11-27 01:25:01 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-27 01:25:01 [DP] LB rule <IP_ADDRESS> add[OK]
2024-11-27 01:25:01 api: lbRules : {{<IP_ADDRESS>  80 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  } {<IP_ADDRESS> 80 1  }]}
2024-11-27 01:25:01 api: Error occur : lbrule-exists error
2024-11-27 01:25:02 api: lbRules : {{<IP_ADDRESS>  443 tcp 0 1 false true 0 0 1 1800 true  0   10 3 ingress-nginx_ingress-nginx-controller:llb-inst1 0 false } [] [] [{<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  } {<IP_ADDRESS> 443 1  }]}
2024-11-27 01:25:02 api: Error occur : lbrule-exists error

Thanks for the info. Request the output of docker exec -it loxilb loxicmd get route as well for further debugging.

core@LoxiLB-02 ~ $ docker exec -it loxilb loxicmd get route
|       DESTINATIONIPNET       |         GATEWAY          |   FLAG   |
|------------------------------|--------------------------|----------|
| <IP_ADDRESS>/0                    | <IP_ADDRESS>                | Ind      |
| <IP_ADDRESS>/24                | <IP_ADDRESS>              | Ind      |
| <IP_ADDRESS>/24                | <IP_ADDRESS>              | Ind      |
| <IP_ADDRESS>/24                | <IP_ADDRESS>              | Ind      |
| <IP_ADDRESS>/24                | <IP_ADDRESS>              | Ind      |
| <IP_ADDRESS>/24                |                          | Self     |
| <IP_ADDRESS>/32              | <IP_ADDRESS>             | Ind Host |
| <IP_ADDRESS>/32              | <IP_ADDRESS>             | Ind Host |
| <IP_ADDRESS>/32               | <IP_ADDRESS>              | Ind Host |
| <IP_ADDRESS>/32               | <IP_ADDRESS>              | Ind Host |
| <IP_ADDRESS>/32               | <IP_ADDRESS>              | Ind Host |
| <IP_ADDRESS>/32               | <IP_ADDRESS>              | Ind Host |
| <IP_ADDRESS>/32              | <IP_ADDRESS>             | Ind Host |
| <IP_ADDRESS>/32              | <IP_ADDRESS>             | Ind Host |
| <IP_ADDRESS>/32               | <IP_ADDRESS>              | Ind Host |
| <IP_ADDRESS>/32               |                          | Self     |
| <IP_ADDRESS>/16                 |                          | Self     |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                | <IP_ADDRESS>               | Ind Host |
| <IP_ADDRESS>/32               |                          | Self     |
| <IP_ADDRESS>/32                |                          | Self     |
| <IP_ADDRESS>/32                |                          | Self     |
| <IP_ADDRESS>/32                |                          | Self     |
| <IP_ADDRESS>/32                |                          | Self     |
| <IP_ADDRESS>/32                |                          | Self     |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/32                 | <IP_ADDRESS>                | Ind Host |
| <IP_ADDRESS>/8                  |                          | Self     |
| <IP_ADDRESS>/32                 |                          | Self     |
| <IP_ADDRESS>/16                |                          | Self     |
| <IP_ADDRESS>/32                |                          | Self     |
| <IP_ADDRESS>/32                | <IP_ADDRESS>               | Ind Host |
| ::1/128                      |                          | Self     |
| fe80::/32                    |                          | Self     |
| fe80::/64                    |                          | Self     |
| fe80::250:56ff:fe88:181e/128 | fe80::250:56ff:fe88:181e | Ind Host |
| fe80::250:56ff:fe88:24df/128 | fe80::250:56ff:fe88:24df | Ind Host |
| fe80::250:56ff:fe88:6eb0/128 | fe80::250:56ff:fe88:6eb0 | Ind Host |
| fe80::250:56ff:fe88:7bcc/128 | fe80::250:56ff:fe88:7bcc | Ind Host |
| fe80::250:56ff:fe88:a55a/128 | fe80::250:56ff:fe88:a55a | Ind Host |
| fe80::250:56ff:fe88:bab6/128 | fe80::250:56ff:fe88:bab6 | Ind Host |
| fe80::250:56ff:fe88:bd63/128 | fe80::250:56ff:fe88:bd63 | Ind Host |
| fe80::250:56ff:fe88:c7ac/128 | fe80::250:56ff:fe88:c7ac | Ind Host |
| fe80::250:56ff:fe88:d77b/128 | fe80::250:56ff:fe88:d77b | Ind Host |
| fe80::250:56ff:fe88:fdcd/128 | fe80::250:56ff:fe88:fdcd | Ind Host |
| fe80::5054:ff:fe75:cad3/128  | fe80::5054:ff:fe75:cad3  | Ind Host |
| fe80::5054:ff:feb7:eaa8/128  | fe80::5054:ff:feb7:eaa8  | Ind Host |
| ff02::16/128                 | ff02::16                 | Ind Host |
| ff02::1:ff88:1e5c/128        | ff02::1:ff88:1e5c        | Ind Host |
| ff02::1:ff88:93a/128         | ff02::1:ff88:93a         | Ind Host |
| ff02::2/128                  | ff02::2                  | Ind Host |

Hi @6547709 After triaging, it seems that this issue was caused as a side effect of service sharding that we introduced recently. This feature lets kube-loxilb distribute the service VIPs across multiple loxilb nodes and it tries to associate a different HA instance for each rule.
But in your case you are probably using BFD based detection which only supports single HA instance now (and not relying on kube-loxilb based master detection). Nonetheless kube-loxilb continues to append sharding zones to the LB rules because the HA instance count is set to 2 (by default) in kube-loxilb. I could find ```llb-inst1`` in the logs which made this clear.
The solution would be to use the following argument in kube-loxilb yaml :
- --numZoneInstances=1

This should disable the service sharding feature and prevent the behavior you are observing.

Thank you so much, I will modify the configuration now and then update if it is resolved.

The parameters you provided are valid. After redeploying the ingress-nginx service, the LB IP has been correctly added to the lo interface.
core@LoxiLB-02 ~ $ docker exec -it loxilb loxicmd get ip
|     DEVICE NAME     |          IP ADDRESS          |
|---------------------|------------------------------|
| docker0             | <IP_ADDRESS>/16                |
| ens192              | <IP_ADDRESS>/24               |
|                     | fe80::250:56ff:fe88:1e5c/64  |
| ens224              | <IP_ADDRESS>/16                |
|                     | fe80::250:56ff:fe88:93a/64   |
| llb-rule-<IP_ADDRESS> | <IP_ADDRESS>/32                |
| llb0                | fe80::acbb:f9ff:fef1:d170/64 |
| lo                  | <IP_ADDRESS>/8                  |
|                     | ::1/128                      |
|                     | <IP_ADDRESS>/32                |
|                     | <IP_ADDRESS>/32                |
|                     | <IP_ADDRESS>/32                |
|                     | <IP_ADDRESS>/32               |

2024-11-27 10:09:47 nlp: Address <IP_ADDRESS>/32 Port lo added


ARROW-6733: [C++] Fix filter kernel when filtering with a boolean Array slice

Travis passing on my fork: https://travis-ci.org/nealrichardson/arrow/builds/592762538

Appveyor failure is something with installing glib? https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/27837139/job/kcgd1nufrsgcjqf0

It does look unrelated. I'll try restarting it to see if it evaporates

I already restarted it (well, requested to restart it, so now it's in the queue again)

Appveyor failed again but this also seems to be failing on master. @kou do you know what's up with https://ci.appveyor.com/project/ApacheSoftwareFoundation/arrow/builds/27840001/job/tgnp57wisjvhyf9a?
An error occurred while installing glib2 (3.3.7), and Bundler cannot continue.
Make sure that `gem install glib2 -v '3.3.7' --source 'https://rubygems.org/'`
succeeds before bundling.

This is not a Apache Arrow problem.
This is a glib2 gem problem. I'll fix it soon. Please ignore this for now.

#5572 will solve this.

#5572 has been merged.
Rebasing will solve this problem.

In that case I'm merging this


update protobuf dependency

Summary
go: module github.com/golang/protobuf is deprecated: Use the "google.golang.org/protobuf" module instead.

For Admin Use

[ ] Not duplicate issue
[ ] Appropriate labels applied
[ ] Appropriate contributors tagged/assigned

How did you get this error?

Closing as stale


Should JArray operations be FFI like JObject?

In https://github.com/purescript/purescript-json/pull/1 Array JSON was turned into JArray. I think this is a useful thing to do and a good assumption that a JArray is not necessarily an Array. However all JArray operation are implemented in terms of toArray. So we've changed the assumption from "It's always an Array" to "In order to observe anything, it must be converted to an Array". This implies that there is a 0-cost conversion to Array, since that would be the only way one could write performant codecs. Should JArray operations be FFI like JObject?

Yeah, for sure. I was just being lazy at the time, primarily wanted to get JArray as a type in before anyone looked at using the library.


Some images not opening

Hello, I have an issue with the images I attach here.
I tried also to load them here: http://rawgit.com/chafey/cornerstoneWADOImageLoader/master/examples/dicomfile/index.html, but the response is "unknown pixel format".
Could you please help?
Thank you
images.zip

one of them is BasicTextSRStorage - nothing relevant to show in the image viewer

Ah ok, is there a way to skip those images and not showing them in the viewer? I'm using a json to receive the images as in your demo, so I need to skip those images after reading the json

Correct - one is SR and the other is PR, neither of which are "Images" but
more "information about images".  Would be great to add support for these
in cornerstone but nobody has worked on either yet
On Thu, Oct 13, 2016 at 10:18 AM, Andrey Fedorov<EMAIL_ADDRESS>wrote:

one of them is BasicTextSRStorage - nothing relevant to show in the image
viewer
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/chafey/cornerstone/issues/75#issuecomment-253544662,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABNb2tK3LdaR8dG31ycqOMEimbHx7P8dks5qzkuwgaJpZM4KV8qD
.

Yes, filter them out when creating the JSON or client side....
On Thu, Oct 13, 2016 at 10:19 AM, danielaromeo<EMAIL_ADDRESS>wrote:

Ah ok, is there a way to skip those images and not showing them in the
viewer? I'm using a json to receive the images as in your demo, so I need
to skip those images after reading the json
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/chafey/cornerstone/issues/75#issuecomment-253545136,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABNb2lu0mFPweE8i6_T2Y80zI12NiWDcks5qzkwGgaJpZM4KV8qD
.

Thank you! Yes, it would be great to add the support for those kind of files.
So I can do it just by checking the modality (SR,PR) or should I check something else?

You can check the sopClassUid against a list of image types.
We do that in the OHIF Viewer here:
https://github.com/OHIF/Viewers/blob/c9236b96f99aabdc9a793f1584d5051d0ed99f1b/Packages/ohif-viewerbase/client/lib/isImage.js#L8
https://github.com/OHIF/Viewers/blob/c9236b96f99aabdc9a793f1584d5051d0ed99f1b/Packages/ohif-viewerbase/client/lib/sopClassDictionary.js
Hope that helps!


Initialize index to fix unhandled exception

What was wrong?
When first_nonconsecutive_header is called with an empty Iterableit crashes with index used before assignment
How was it fixed?
Assign index to 0 at the begin of the function. I'm not entirely sure if 2 is the semantically valid response for an empty Iterable but the function should certainly not crash when called with an empty Iterable.
Cute Animal Picture

Yeah, sorry I haven't had a chance to push this one up yet, it was sitting in my working directory with the state sync changes. My patch went something like:
index 60872ba2..852a7d6a 100644
--- a/trinity/sync/common/headers.py
+++ b/trinity/sync/common/headers.py
@@ -8,7 +8,7 @@ from typing import (
     Callable,
     FrozenSet,
     Generic,
-    Iterable,
+    Sequence,
     Tuple,
     Type,
 )
@@ -691,7 +691,7 @@ class HeaderMeatSyncer(BaseService, PeerSubscriber, Generic[TChainPeer]):
             raise

-def first_nonconsecutive_header(headers: Iterable[BlockHeader]) -> int:
+def first_nonconsecutive_header(headers: Sequence[BlockHeader]) -> int:
     """
     :return: index of first child that does not match parent header, or a number
         past the end if all are consecutive
@@ -701,7 +701,7 @@ def first_nonconsecutive_header(headers: Iterable[BlockHeader]) -> int:
             return index + 1

     # return an index off the end to indicate that all headers are consecutive
-    return index + 2
+    return len(headers)


Improve search result display

Currently, multiple pages with the same title like "Security" or "Log aggregation" from different operators cannot be distinguished in the search results, this needs to be fixed.
Tasks

[x] Switch from the default pagefind UI to the modular one
[x] In the documentation-ui, tag the breadcrumbs metadata. There is a breadcrumbs.hbs file where it can be done.
[x] Adjust the UI
[x] Pin the pagefind version
[x] Update prod UI

links were not clickable, needs more work

feedback: Please focus on the search bar once clicked

The searchbar focus will be a new issue. This one is actually resolved by this PR: https://github.com/stackabletech/documentation-ui/pull/67


TapGestureRecognizers on iOS

Hi - Trying to use a FlowListView on iOS with a stacklayout in the data template. The tap gesture is not working, and I'm not sure if its a combination of other properties or something else:
<FLV:FlowListView  BackgroundColor="Transparent"                               FlowColumnCount="2"                               FlowItemsSource="{Binding NavigationGrid}"                               HasUnevenRows="True"                               SeparatorVisibility="None"                               VerticalOptions="FillAndExpand"                               IsPullToRefreshEnabled="False">                 <FLV:FlowListView.FlowColumnTemplate>                     <DataTemplate>                         <StackLayout Margin="0,10,0,10">                             <StackLayout.GestureRecognizers>                                 <TapGestureRecognizer Command="{Binding ClickedCommand}"                                                       CommandParameter="{Binding ClickedCommandParameter}"/>                             </StackLayout.GestureRecognizers>                             <Image Source="{Binding IconSourceLight}"                                    WidthRequest="50"                                    HeightRequest="50"/>                             <Label HorizontalTextAlignment="Center"                                    Text="{Binding DisplayName}"                                    TextColor="{StaticResource ColorNeutralBright}"/>                         </StackLayout>                     </DataTemplate>                 </FLV:FlowListView.FlowColumnTemplate>             </FLV:FlowListView>
Any help would be appreciated!

I'll need more details / code to help you, if you provide them, I'll reopen the issue. Thanks.


Why this table has not the scrollbar for the horizontal view.

If the columns length is more than the screen width then there is no horizontal scrollbar and it stretch the table and look of the table become ugly. Kindly add the horizontal scroll bar to the table on top on next previous strip. Thanks

The package was designed to have fixed width and relative column sizes. I will start developing a solution that includes a horizontal scrollbar, but it will take a while, because I don't know how to start and what to modify.

Good news. The first commit I made to the horizontal-scroll branch contains code to render cells larger than the viewport width and display a horizontal scroll. Hopefully in the next few days, I have a reproducible example

Hello. Just curious if this will get implemented soon.

Hello. Just curious if this will get implemented soon.

Check the v2 dev at pub.dev


Allow policycontroller access to Secrets

Signed-off-by: Chaitanya Kandagatla<EMAIL_ADDRESS>Issue: https://github.com/stolostron/backlog/issues/18708
Policy Controller on the managed-cluster now needs to be able sync secrets from the managed-cluster namespace on the Hub

/assign @zhiweiyin318
/assign @mprahl

/approve
/lgtm


How to debug "[BaosSerial] Timeout"

Hi,
I am trying to get my kBerry to work.
While I was (partially) successfull using knxd to program it, I still fail on many operations, such as using the sample_BaosSerial.
The output of sample_BaosSerial:
./sample_BaosSerial
12:21:56:628 [] Console Logger Started
12:22:01:686 [BaosSerial] Timeout
How can I debug this?
I followed the instructions on https://github.com/weinzierl-engineering/baos/blob/master/docs/Raspbian.adoc .
Any help would be appreciated
------------------------------------- additional information -------------------------------
uname -a:
"Linux openHABianDevice 5.4.72-v7+ #1356 SMP Thu Oct 22 13:56:54 BST 2020 armv7l GNU/Linux"
tail /boot/config.txt:
[all]
gpu_mem=16
enable_uart=1
dtoverlay=disable-bt

With the logger set to 8, I oberserve the following output: ./baos_connect /dev/serial0 15:30:23:771 [] Console Logger Started 15:30:23:774 [kdrive.io.serial.SerialPort] Opening serial port /dev/ttyAMA0, speed 19200, parameters 8E1, flow control none 15:30:23:775 [kdrive.io.serial.SerialPort] Sending 4 byte(s) 0000  10 40 40 16                                       .@@. 15:30:23:775 [kdrive.ft12.FT12_Packetizer] ft1.2 tx: 10 40 40 16 15:30:23:780 [kdrive.io.serial.SerialPort] Received 1 byte(s) 0000  E5                                                . 15:30:23:780 [kdrive.ft12.FT12_Packetizer] ft1.2 rx: E5 15:30:23:781 [kdrive.io.serial.SerialPort] Sending 8 byte(s) 0000  68 02 02 68 73 A7 1A 16                           h..hs... 15:30:23:782 [kdrive.ft12.FT12_Packetizer] ft1.2 tx: 68 02 02 68 73 A7 1A 16 15:30:23:789 [kdrive.io.serial.SerialPort] Received 1 byte(s) 0000  E5                                                . 15:30:23:789 [kdrive.ft12.FT12_Packetizer] ft1.2 rx: E5 15:30:23:799 [kdrive.io.serial.SerialPort] Received 8 byte(s) 0000  68 0C 0C 68 F3 A8 11 21                           h..h...! 15:30:23:803 [kdrive.io.serial.SerialPort] Received 8 byte(s) 0000  00 C5 01 02 DC 94 00 04                           ........ 15:30:23:806 [kdrive.io.serial.SerialPort] Received 2 byte(s) 0000  09 16                                             .. 15:30:23:807 [kdrive.io.serial.SerialPort] Sending 1 byte(s) 0000  E5                                                . 15:30:23:807 [kdrive.ft12.FT12_Packetizer] ft1.2 tx: E5 15:30:23:807 [kdrive.ft12.FT12_Packetizer] ft1.2 rx: 68 0C 0C 68 F3 A8 11 21 00 C5 01 02 DC 94 00 04 09 16 Checking connector for operation connection established 15:30:23:809 [kdrive.io.serial.SerialPort] Sending 13 byte(s) 0000  68 07 07 68 53 F0 01 00  08 00 01 4D 16           h..hS......M. 15:30:23:810 [kdrive.ft12.FT12_Packetizer] ft1.2 tx: 68 07 07 68 53 F0 01 00 08 00 01 4D 16 15:30:23:819 [kdrive.io.serial.SerialPort] Received 1 byte(s) 0000  E5                                                . 15:30:23:820 [kdrive.ft12.FT12_Packetizer] ft1.2 rx: E5 15:30:28:828 [kdrive.io.serial.SerialPort] Closing serial port 15:30:28:829 [BaosSerial] Timeout

This does not look too bad, it shows that both directions are working:
68 02 02 68 73 A7 1A 16 from 15:30:23:782 is EMIC_PEI_IDENTIFY_REQ from raspberry, which is answered by kberry with 68 0C 0C 68 F3 A8 11 21 00 C5 01 02 DC 94 00 04 09 16 (EMIC_PEI_IDENTIFY_CON). Please have a look at https://www.weinzierl.de/images/download/development/830/KnxBAOS_Protocol_v2.pdf for more information about FT1.2 protocol in chapter 4.1.
68 07 07 68 53 F0 01 00 08 00 01 4D 16 from 15:30:23:810 is a GetServerItem.Req to serial number of kberry, but there seems to be no answer. Is this a fresh install of raspbian?

Hi, the system is as "new" as an openhabian with knxd gets. I tried a few things, but in essence the sequence is the same for knxd (which was disabled and killed for the test of baos).
Cheers
Sent from MailDroid
-----Original Message-----
From: KHBuchner<EMAIL_ADDRESS>To: weinzierl-engineering/baos<EMAIL_ADDRESS>Cc: sichiwai<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Sent: Fr., 13 Nov. 2020 8:44
Subject: Re: [weinzierl-engineering/baos] How to debug "[BaosSerial] Timeout" (#14)
This does not look too bad, it shows that both directions are working:
68 02 02 68 73 A7 1A 16 from 15:30:23:782 is EMIC_PEI_IDENTIFY_REQ from raspberry, which is answered by kberry with 68 0C 0C 68 F3 A8 11 21 00 C5 01 02 DC 94 00 04 09 16 (EMIC_PEI_IDENTIFY_CON). Please have a look at https://www.weinzierl.de/images/download/development/830/KnxBAOS_Protocol_v2.pdf for more information about FT1.2 protocol in chapter 4.1.
68 07 07 68 53 F0 01 00 08 00 01 4D 16 from 15:30:23:810 is a GetServerItem.Req to serial number of kberry, but there seems to be no answer. Is this a fresh install of raspbian?
--
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub:
https://github.com/weinzierl-engineering/baos/issues/14#issuecomment-726579788

I don't know openhabian and knxd, but could it be that it changes the configuration of kberry, e.g. set it to link layer? For more information about link layer please have look at https://www.weinzierl.de/images/download/development/830/KnxBAOS_Users_Guide.pdf e.g in chapter 5.2

FYI:
openhabian is a variant of raspberrian tailored for homte-automation (https://www.openhab.org/)
knxd is a community implementation of a knx server & interface (https://github.com/knxd/knxd). I initially tried to use the kBerry with KNXD for tunneling to the bus - which to some degree worked, but had some issues.
Then I tried to see, if the baos Demo would worked without issues.
This brought me here.
Is there some way to "reset" the kBerry?
At this point, I am setting up a vanilla raspberry pi system and retest.

OK, in the documentation was the description on how to reset. Which I did. And now the example works.
Question: is it possible to use the kBerry both in BAOS and in link layer mode?

No, unfortunately, this is not possible

ok, unfortunate.
Just to understand this completely: So if I use the BAOS to store some values, then switch to link layer mode. Will those values still be accessible? Or does the link layer mode deactivate the "BAOS" functionality?

Remark: When using KNXD it leaves the kBarry in link layer mode, regardless of what it was doing before hand.
Hence, I would suggest adding a mechanism to the serial example, that explicitly switches the kBerry to BAOS mode.

We will diskuss this for future versions of BAOS library. Switching mode causes new initializing of the respective mode. so all previous data is lost.


Question: how would you transform this into a multi-project solution?

First of all, great sample to illustrate CQRS! I hope you are allowing questions and I hope this is a good place to put them.
In a larger-scale application, you would probably make multiple projects. Starting with something like:

Website
Logic
Data
Domain

How would you refactor this sample into multiple projects?
Especially, where would you place the requests, request handlers, validators and models since all of them seems to be tightly coupled (also with the domain classes).
If we look at the Instructor feature. Both the Instructor domain object and the CreateEdit.CommandHandler use the CreateEdit.Command. Does this make the command part of the domain? Or do we create another project where commands and models go to?

In a larger-scale application, you would probably make multiple projects

Why? What problem are you trying to solve by making multiple projects?

Why? What problem are you trying to solve by making multiple projects?

Mainly to create boundaries between different layers in your project so you can restrict dependencies. That way you have a better control over dependencies between different parts of your application as your project grows.
Eg: now it is possible for your data-logic to have references to parts of the application that are built around the view/display of information.
Let me turn that question around: what is the downside of creating multiple projects?

An assembly is a unit of deployment, do you plan on deploying your projects independently?
There are a number of issues with having multiple projects. This article https://codurance.com/2015/03/23/multiple-projects-in-visual-studio/ summaries it better than I can.
At the end of the day, for me, splitting a solution over multiple projects just creates a ton of busy work that ultimately adds very little value.

Just read the article. Point taken.
Let's say we have another deployment. Let's say we wanted to add a public REST api that is deployed independently from the website. If you don't create projects for seperate layers in your application, you would have duplicate a lot of code around logic and data-access.
So in that case, the question still remains - how would you seperate logic from view?
PS: But still, I feel more confident when dependencies that are undesirable are enforced in some way. Maybe there is another way I am not thinking of or I don't know of.

Right..
So lets say we just has a website for ordering. we would start off with a solution structure or
- Orders.Web

If we then added an api, we would add two more projects, so the solution now looks like
- Orders.Api
- Orders.Web
- Orders.Shared or Orders.Common or Orders.Core

The shared project is where all the common code, logic goes. As far as projects go though, that is it. It would be very rare for us to have anymore projects than this other than a Test project and maybe a Service project if we had bus message consumers or background workers.
As for undesirable dependencies, if you really wanted to you could write convention tests (unit tests) that use reflection to verify that certain types don't depend on other types etc.

I didn't really mean to start a discussion about if you should, or should not split up into multiple projects. I just would like to know, if you wanted to, how would you.
So how would this scale over multiple projects?
Maybe we can just agree to disagree?

If I do multiple projects, it's not for layers, but for modules.
So maybe Orders.Checkout, Orders.CustomerView etc.
On Tue, Aug 8, 2017 at 3:54 AM, SanderDeclerck<EMAIL_ADDRESS>wrote:

I didn't really mean to start a discussion about if you should, or should
not split up into multiple projects. I just would like to know, if you
wanted to, how would you.
So how would this scale over multiple projects?
Maybe we can just agree to disagree?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jbogard/ContosoUniversityCore/issues/15#issuecomment-320894302,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGYMif_pSTz97Rr0sN20zxu1govBKErks5sWCItgaJpZM4OwRnT
.

@SanderDeclerck . I would organize it similarly to how it is now, moving the folders to their own project. Using DDD layers you could have something like this:
Contoso.Web
Contoso.Application
Contoso.Domain
Contoso.Infrastructure
Like you, I like to have clear boundaries between layers.

Meh, not a lot of value to that in my experience. Slices not layers 😁
On Tue, Aug 8, 2017 at 10:50 AM Michael Whelan<EMAIL_ADDRESS>wrote:

@SanderDeclerck https://github.com/sanderdeclerck . I would organize it
similarly to how it is now, moving the folders to their own project. Using DDD
layers
https://ajlopez.wordpress.com/2008/09/12/layered-architecture-in-domain-driven-design/
you could have something like this:
Contoso.Web
Contoso.Application
Contoso.Domain
Contoso.Infrastructure
Like you, I like to have clear boundaries between layers.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jbogard/ContosoUniversityCore/issues/15#issuecomment-320998717,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGYMgdsJxcXZvpa02AN3cJsRXYKuyuaks5sWIPWgaJpZM4OwRnT
.

To be honest, I've been using these layers for so many years I think it's as much out of habit as anything else. I do like the feature folder organization in the web project rather than the traditional Controllers etc. - so I'm half way there I guess. :-)
@jbogard, in your professional projects do you just have all the slices in the one project then, like in this sample? When you add a project like the Orders.Checkout module, would that have the whole slice with views and code, or just the code with the views still in the web project?,

Nah, I don't go too far with the modules tbqh, but those are basically
Areas in MVC. Or if you're doing SPA, it's a bit easier to combine
everything together. MVC makes some assumptions on view locations and it's
not terribly configurable, so I tend to work with the norms there.
On Tue, Aug 8, 2017 at 11:36 AM, Michael Whelan<EMAIL_ADDRESS>wrote:

To be honest, I've been using these layers for so many years I think it's
as much out of habit as anything else. I do like the feature folder
organization in the web project rather than the traditional Controllers
etc. - so I'm half way there I guess. :-)
@jbogard https://github.com/jbogard, in your professional projects do
you just have all the slices in the one project then, like in this sample?
When you add a project like the Orders.Checkout module, would that have the
whole slice with views and code, or just the code with the views still in
the web project?,
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jbogard/ContosoUniversityCore/issues/15#issuecomment-321011469,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGYMl0L-ZNTYFKO2XMr3UFmvFO266Yvks5sWI6TgaJpZM4OwRnT
.

My go to reasoning: http://codebetter.com/jeremymiller/2008/09/30/separate-assemblies-loose-coupling/


Override username in sync config file

A feature to force a username in SSH connection profiles, when several people use the same conf file would be possible?

sorry , i didn't catch your meaning.


<EMAIL_ADDRESS>decompress error

Terminal screenshot

The 7zip.log mentioned above
notes
4.2.3 decompress error issues is #12853

#12359


docs: improve description for Environment Variables

Description
See https://forum.codeigniter.com/showthread.php?tid=89299&pid=415385#pid415385
Checklist:

[x] Securely signed commits
[] Component(s) with PHPDoc blocks, only if necessary or adds value
[] Unit testing, with >80% coverage
[x] User guide updated
[] Conforms to style guide

@michalsn Thank you for reviews!


enhancement: pr guardrails commitlint config update

Description
Update npm installation process to avoid different version installation.

This issue is resolved.