Line numbers don't show up occasionally

The line numbers don't show up on a new tab when there are no tabs open.
Close all tabs so that it shows no tabs. Open a new tab, or multiple. The line number doesn't show up on any of them. It only seems to show up on the first tab if multiple tabs are opened, and only shows 1 then doesn't update.

It also doesn't seem to work when a tab has been closed (ignoring how many tabs are still open). Then once a new tab is opened, the line numbers never show up. The line highlighting works perfectly fine.


Wrong Content-Type header when using fragments

When the response is an HTML fragment it adds the Content-Type:text/plain; instead of  Content-Type:text/html; so the page is not rendered properly.
@Path("/")
public class HelloResource extends io.quarkiverse.renarde.Controller {

    public io.quarkus.qute.TemplateInstance index() {
        return HtmlTemplate.index();
    }

    public io.quarkus.qute.TemplateInstance fragment() {
        return HtmlTemplate.index$fragment();
    }

}

from qute index

{#fragment id='fragment' rendered=false}

the fragment

{/fragment}

@CheckedTemplate
public class HtmlTemplate {

    public static native TemplateInstance index();

    public static native TemplateInstance index$fragment();

}

This sounds like a generic Qute bug, no, @mkouba ? Perhaps because we don't set VARIANTS on the fragments, but only on the template? Then the TemplateResponseFilter won't be able to set the MediaType properly.

This sounds like a generic Qute bug, no, @mkouba ? Perhaps because we don't set VARIANTS on the fragments, but only on the template? Then the TemplateResponseFilter won't be able to set the MediaType properly.

You're right. The fragments are not fully integrated with resteasy-qute/type-safe templates yet. I'll try to propose a fix this week.

Great, thanks. Should I open an issue on Quarkus?

Great, thanks. Should I open an issue on Quarkus?

https://github.com/quarkusio/quarkus/pull/35841 :smile:

You're too fast for me. Thanks a lot, I'll close this.


fix(gateway/oas-validation): add a proper breaking change entry

Description
Add breaking change entries to <IP_ADDRESS>, <IP_ADDRESS>, and <IP_ADDRESS>.

Testing instructions
Preview link:
Checklist

[ ] Review label added
[ ] Conditional version tags added, if applicable.

For example, if this change is for an upcoming 3.6 release, enclose your content in {% if_version gte:3.6.x %} <content> {% endif_version %} tags (or if_plugin_version tags for plugins).
Use any of the following keys:

gte:<version> - greater than or equal to a specific version
lte:<version> - less than or equal to a specific version
eq:<version> - exactly equal to a specific version

You can do the same for older versions.

FTI-5747

This breaking change isn't in any of these releases, is it? I see your PR was just merged two days ago, so it can't be in an existing patch: https://github.com/Kong/kong-ee/pull/8255

@lena-larionova The behavior changes actually introduced by PR https://github.com/Kong/kong-ee/pull/7475. The https://github.com/Kong/kong-ee/pull/8255 just updates the field description to be used by the doc site. This PR just add the missing documentation.

@vm-001 double-checking, is it supposed to be "URI-encoded" or "URL-encoded"?


feat: terraform linter that validates against the abcxyz style guide

Is there anyway to ensure all terraform resources are created with underscore separated names?
eg my_test_project
This would include, resources, modules, variables, outputs I believe (am I missing anything)?
See the Other Naming section in the doc.

That shouldn't be too hard.
Look for - instead of _? Any other bad characters?


Initializing fortran playground

A basic working playground

I went and created issues to track comments from the other PRs, so am happy to go ahead and merge this.


Confusing UI Branding When Installing CSP Adapter (non-community Logo)

Setup

Rancher version: 2.7.0-rc11
EKS Cluster created with eksctl CLI tool
k8s 1.22 specified via eksctl install
csp adapter version installed v2.0.0
Browser type & version:  Google Chrome  107.0.5304.110 (Official Build) (x86_64)

Describe the bug

When installing the CSP Adapter the branding changes to dark blue with a different logo. I would not expect that logo, since the CSP Adapter being installed does not indicate it is associated with that custom build. Because you are still using the open source images
To Reproduce

Setup the CSP Adapter on a BYOC (bring your own cluster) EKS cluster on AWS. These Rancher documents can be followed to get it setup.
https://docs.ranchermanager.rancher.io/integrations-in-rancher/cloud-marketplace/aws-cloud-marketplace/adapter-requirements

Setting Up License Manager and Purchasing Support
Create an EKS Cluster
Install Rancher making sure the additional two lines are used in the helm install command

--set ingress.ingressClassName=nginx \
--set extraEnv\[0\].name="CATTLE_PROMETHEUS_METRICS" --set-string extraEnv\[0\].value=true

Create an OIDC Provider
Create an IAM Role
Create the Adapter Namespace
Install the the CSP Adapter Chart

helm install rancher-csp-adapter rancher-charts/rancher-csp-adapter --namespace cattle-csp-adapter-system --set aws.enabled=true --set aws.roleName=$MY_ROLE_NAME --set-string aws.accountNumber=$MY_ACC_NUM --set image.tag=v2.0.0

Looks like this is happening at: https://github.com/rancher/dashboard/blob/fcbdf97706636fddd43344ee670d92a2a65a6783/shell/mixins/brand.js#L92-L97
Result
Once the CSP Adapter is installed the accent colors in the UI change to dark blue and the other logo appears
Expected Result

The UI Branding used to change to green accents. I would still expect this and not the dark blue logo. Since this is not that custom release
Screenshots

Additional context

✅ PASSED
Reproduction Environment
Not required.

Validation Environment

Component
Version / Type

Rancher version
v2.7-9c4881e2d69fd4b269d9678e9c28a7d1e6215eb7-head

Installation option
Helm (high availability)

EKS Cluster Created With
EKSCTL

If Helm Chart k8s cluster
v1.22.15-eks-fb459a0

Cert Details
Let's Encrypt / nginx

Helm version
v2.16.8-rancher2

Downstream cluster type
Not Applicable

Downstream K8s version
Not Applicable

Authentication providers enabled
local

Logged in user role
Administrator & Standard User

Browser type
Google Chrome

Browser version
107.0.5304.110 (Official Build) (x86_64)

🚨 Additional Validation Setup Details: Click to Expand
eksctl create cluster \
  --name $CLUSTER_NAME \
  --version 1.22 \
  --region $REGION_VAR \
  --nodegroup-name $NODE_GROUP_NAME_VAR \
  --nodes 3 \
  --nodes-min 1 \
  --nodes-max 4 \
  --managed

helm install rancher rancher-latest/rancher \
  --namespace cattle-system \
  --set hostname=$HOST_VAR \
  --set bootstrapPassword=$PW_VAR \
  --set ingress.tls.source=letsEncrypt \
  --set letsEncrypt.email=$EMAIL_VAR \
  --set letsEncrypt.ingress.class=nginx \
  --set ingress.ingressClassName=nginx \
  --set rancherImageTag=v2.7-head \
  --set extraEnv\[0\].name="CATTLE_PROMETHEUS_METRICS" --set-string extraEnv\[0\].value=true

Validation steps

Setting Up License Manager and Purchasing Support
Create an EKS Cluster
Install Rancher making sure the additional two lines are used in the helm install command

--set ingress.ingressClassName=nginx \
--set extraEnv\[0\].name="CATTLE_PROMETHEUS_METRICS" --set-string extraEnv\[0\].value=true

Create an OIDC Provider
Create an IAM Role
Create the Adapter Namespace
Install the the CSP Adapter Chart

helm install rancher-csp-adapter rancher-charts/rancher-csp-adapter --namespace cattle-csp-adapter-system --set aws.enabled=true --set aws.roleName=$MY_ROLE_NAME --set-string aws.accountNumber=$MY_ACC_NUM --set image.tag=v2.0.0

After installing the CSP adapter observer the UI
Check the brand setting under Global Settings ==> ui-brand

Additional Info
RESULTS
✅ Expected
Expected green color theme & logo. Also for the ui-brand setting in Global Settings to be csp
✅ Actual
ui-brand setting was csp and seeing the green color theme & logo
Additional checks

Admin & Standard user - PASS
Light and dark themes both seeing changes - PASS

Upgrade from 2.6.9 ==> 2.7.0 failure: https://github.com/rancher/dashboard/issues/7486


RankedModel breaks rails console:  NameError: uninitialized constant Product::RankedModel

Hey!  I'm running into a strange error after including RankedModel.  Everything within the app works perfectly, i'm able to resort and so on, but now my console no longer works when booting up rails c
My Product class looks like so:
class Release < ActiveRecord::Base
  include RankedModel
  ranks :row_order

  extend FriendlyId
  friendly_id :album, use: :slugged

  belongs_to  :artist, class_name: 'Artist', foreign_key: 'artist_id'
  has_many    :products
  has_many    :gallery_images
  accepts_nested_attributes_for :gallery_images

  mount_uploader :cover_photo, CoverPhotoUploader

  validates :album,   presence: true
  validates :catalog, presence: true
end

But when I boot up the console and try to execute any action on any model that is using RankedModel I receive an error:
irb(main):003:0> Product.all
NameError: uninitialized constant Product::RankedModel
    from /Users/damassi/Sites/UnseenWorlds/usw-backend/app/models/product.rb:3:in `<class:Product>'
    from /Users/damassi/Sites/UnseenWorlds/usw-backend/app/models/product.rb:1:in `<top (required)>'
    from (irb):3
    from /Users/damassi/.rvm/gems/ruby-2.1.0/gems/railties-4.1.4/lib/rails/commands/console.rb:90:in `start'
    from /Users/damassi/.rvm/gems/ruby-2.1.0/gems/railties-4.1.4/lib/rails/commands/console.rb:9:in `start'
    from /Users/damassi/.rvm/gems/ruby-2.1.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:69:in `console'
    from /Users/damassi/.rvm/gems/ruby-2.1.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /Users/damassi/.rvm/gems/ruby-2.1.0/gems/railties-4.1.4/lib/rails/commands.rb:17:in `<top (required)>'
    from /Users/damassi/Sites/UnseenWorlds/usw-backend/bin/rails:8:in `<top (required)>'
    from /Users/damassi/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /Users/damassi/.rvm/rubies/ruby-2.1.0/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from -e:1:in `<main>'

Looking around on StackOverflow I can't seen to find any pointers, so I thought I would log this here.  Also, my project is very basic so I don't think there are any unknown interferences.
Thanks!

+1 same issue with rails 4.1.5 (and using git repo in Gemfile does not seem to help)

@camilledelbos, not sure, this is what is in my Gem file, though I haven't updated app in a while!
gem 'ranked-model', :git => 'https://github.com/mixonic/ranked-model.git'

same here ! Rail (5.1)

Need more information than that I'm afraid :)

Restarting rails console helped me. Rails 5.0.2


aws jmh benchmark cleanups

This script lets you benchmark a patch across 10 different cpu types in parallel, just copy the branch name from PR and pass to make, along with any jmh args if you dont want to run all benchmarks, for example:
make PATCH_BRANCH=ChrisHegarty:unroll_by_2 JMH_ARGS='floatDotProductVector -p size=1024'

It creates a combined build/report.txt by CPU, suitable for copy/pasting into a PR.
Apply some cleanups:

Remove hardcoded lucene 10 jar, which was breaking the benchie: use a glob pattern instead.
Add graviton4 instance type (c8g) to the benchmark.

OK, we can change that to https. I'm pretty sure it doesn't work for you because no agent was forwarded. i have in my ssh config:
AddKeysToAgent yes
ForwardAgent yes

This is just old habits because https clones are unreliable.

Yeah, i commented out the forwarding and I think i reproduced your issue:
fatal: [graviton4]: FAILED! =>
    changed: false
    cmd: /usr/bin/git ls-remote git@github.com:apache/lucene.git -h refs/heads/main
    msg: |-
<EMAIL_ADDRESS>Permission denied (publickey).
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.
    rc: 128
    stderr: |-
        Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
<EMAIL_ADDRESS>Permission denied (publickey).
        fatal: Could not read from remote repository.

        Please make sure you have the correct access rights
        and the repository exists.
    stderr_lines: <omitted>
    stdout: ''
    stdout_lines: <omitted>

Will push a commit with change to https after i test that it works.

@ChrisHegarty take another look?

@rmuir this LGTM.  I clearly have some misconfiguration and/or quirkiness in my ssh setup, so no need to do too much to appease me.  I'm also not proficient with ansible!
I'm silly and it took me too long to determine that to debug a failure I need to use the lucene user to log into the VM, e.g. ssh<EMAIL_ADDRESS>(rather than ec2-user)
I also needed to set ServerAliveInterval to say 30 in my case, otherwise the script just appeared to "hang" in Assemble Sources.  ( I just created an  ansible.cfg with [ssh_connection]  ssh_args = -o ServerAliveInterval=30). Again, a small gotcha  on my side. But worth a note about ssh config?

@ChrisHegarty I want to make it so anybody can use it :)
I understand the SSH reliability issue as I have experienced it before. The issue is that i have sub-10ms ping time to us-east-1 region, so I don't see your problem. I will fix the ssh defaults here, I'll do it as a followup PR.
Typically I set them to something like this, to not overwrite the defaults of reusing-connections and compressing, which are immensely helpful (see "default" in https://docs.ansible.com/ansible/2.7/reference_appendices/config.html#ansible-ssh-args), but just add the keepalives:
-C -o ControlMater=auto -o ControlPersist=60s -o ServerAliveInterval=30 -o ServerAliveCountMax=10

In conjunction with this, I also set retries = 3 so that when network fails it will try to reconnect instead of just dying.
I will make followup issue, and just try to set these as env variables in the Makefile so that nobody needs to fight it for good network reliability.

merging this one for now: will report back with a PR to make the SSH more robust.


[API Proposal] Array CircularlyShifted array function

I recently needed that and was surprised that in the reach pool of built-in array functions there was no rotation function (rotate left or right).
This PR adds a Rotated function which performs just that. It follows the pattern of Padded function, in that a positive step indicates rotation right, and negative indicates a rotation left.
Hope this makes sense.

I'm feel a little uncomfortable about 'Rotated' name for this function. Rotation typically means something else in quantum. Could be it confusing to the users?

I see what you mean. Matlab refers to it as circular shift and numpy calls it roll so maybe one of these?

I see what you mean. Matlab refers to it as circular shift and numpy calls it roll so maybe one of these?

I was thinking about some sort of a shift so circular shift sounds reasonable.

Thanks a lot for a quick feedback, I renamed it accordingly, sorted the code and force pushed.

@filipw would you mind merging main into your branch? We're circling back to getting this merged, but we also made changes to the CI pipeline that must be in the PR for the branch rules to be satisfied.

sure, done!


Fix rich text editor custom form field

The form field label should float above the UI element.
Text editor content should be empty string if the initial value is null or "empty string"

As for the floating label, one of the ways to do this is probably to try and add a margin to the CKEditor so that it slides downward a bit, hence making the label float above.


No index.js for npm package entry

Error: Cannot find module '/Users/ench/Code/Sandbox/node-ruuvitag-weather/index.js'

Wrong entry point in package.com, fixed in 71fad8e. Published in npm as version 1.0.0. Thanks for pointing it out!


"PROTOCOL_ID has already been initialized" error when creating more than one Discv5 instance

I'm getting "PROTOCOL_ID has already been initialized" error when trying to create more than one Discv5 instance.
discv5 version: 0.2.0
Here is an example code to replicate the issue:
use discv5::{Discv5, Discv5ConfigBuilder};
use discv5::enr::{CombinedKey, EnrBuilder};

fn main() {
    let config_1 = Discv5ConfigBuilder::new().protocol_id("fooooo").build();
    let enr_key_1 = CombinedKey::generate_secp256k1();
    let enr_1 = EnrBuilder::new("v4").build(&enr_key_1).unwrap();
    let _ = Discv5::new(enr_1, enr_key_1, config_1).unwrap();

    let config_2 = Discv5ConfigBuilder::new().build();
    let enr_key_2 = CombinedKey::generate_secp256k1();
    let enr_2 = EnrBuilder::new("v4").build(&enr_key_2).unwrap();
    let _ = Discv5::new(enr_2, enr_key_2, config_2).unwrap();
}

The last line panics with:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "PROTOCOL_ID has already been initialized"'

Just commenting here to acknowledge we've received the but report and we know what's going on, expect a solution in around a week

@ogenev you can use master in the meantime, we'll publish a release and release notes soon. Let me know if you need any help

closed by #163


Disable query timeout with PGOPTIONS.

TLDR: SET statement_timeout = 0; COPY ... does not work, because it sets timeout for next query.
Compare:
psql -c "set statement_timeout=1000; select pg_sleep(5)"
 pg_sleep
----------

(1 row)

With:
PGOPTIONS="--statement-timeout=1s" psql -c "select pg_sleep(5000)"
ERROR:  canceling statement due to statement timeout

This explained in detail here http://dba.stackexchange.com/a/83035

@clofresh can you please take a look at this? Looks like you added original change in https://github.com/wal-e/wal-e/commit/36e2050cf709251cd4e2002d461e16ef9a7009c3

ahh, yeah that's the right solution :+1:

So I guess we're good now?

@fdr I believe we are good if you merge this PR. What is now in the repo does not work.

Example of failure:
2016-03-30 09:12:00 UTC ERROR:  canceling statement due to statement timeout
2016-03-30 09:12:00 UTC STATEMENT:  SET statement_timeout = 0; COPY (SELECT file_name,   lpad(file_offset::text, 8, '0') AS file_offset FROM pg_xlogfile_name_offset(  pg_start_backup('freeze_start_2016-03-30T09:11:55.629736+00:00'))) TO STDOUT WITH CSV HEADER
2016-03-30 09:12:00 UTC ERROR:  a backup is not in progress
2016-03-30 09:12:00 UTC STATEMENT:  SET statement_timeout = 0; COPY (SELECT file_name,   lpad(file_offset::text, 8, '0') AS file_offset FROM pg_xlogfile_name_offset(  pg_stop_backup())) TO STDOUT WITH CSV HEADER

I see. That's handy. Perhaps don't use PGOPTIONS and pass the arguments to psql directly, as some other are already? Also, one may not need csv_query to be a list anymore, nor joined with semicolons, introduced in 36e2050cf709251cd4e2002d461e16ef9a7009c3.

Wait, I'm reading what PGOPTIONS does, and it doesn't seem to me what this patch assumes it does. You want something like:
PGOPTIONS='-c statement_timeout=0' psql
Per the manual, see http://www.postgresql.org/docs/9.1/static/libpq-connect.html#LIBPQ-CONNECT-OPTIONS

You also may want to make sure this takes precedence over ALTER DATABASE SET statement_timeout=XYZ;.

...heh, both work (-c statement_timeout and --statement-timeout). That's...weird. Let me try with an old Postgres and make sure it's portable back to The Old Days.

Sure enough it works on 9.1. Okay, merging.

I'm testing this and another change in #232, after cleaning up the csv_query=[] business

Alright, I've merged it, can you give things a try and make sure they work as you expect? If so, I'll release v0.9.1


Nilaway gives false-positive on nested map initialization

regroupedData := make(map[string]map[string]map[string][]string)
for _, record := range recordSet {
	if regroupedData[record.lvl1] == nil {
		regroupedData[record.lvl1] = make(map[string]map[string][]string)
	}
	for lvl3, data := range record.Data {
		if regroupedData[record.lvl1][data.lvl2] == nil {
			// Nilaway gives false positive on this line, even though every previous nest level is initialized
			regroupedData[record.lvl1][data.lvl2] = make(map[string][]string)
		}
		regroupedData[record.lvl1][data.lvl2][lvl3] = data.CompromisedData
	}
}

error: Potential nil panic detected. Observed nil flow from source to dereference point: -> code/code.go: deep read from variable regroupedData lacking guarding; written to at an index

@k-kaminskas - acknowledged. Thanks for reporting this issue. Feel free to raise a PR for solving this problem.


What are datasets used for now in Mendix 10?

Please use the form below, leaving the prefilled data to help us. Thank you.
Page link: datasets
Document link: _index.md
In Mendix 8 Datasets were used in "reports in Pages"
In Mendix 9 Reports were deprecated (without any indication on how to replace them!); and in Mendix 10 they are not supported anymore. So, are datasets really useful?

Hi Dan,
Thanks for your question.
Now that Reports have been removed the only way to use Datasets is through Java actions; there is no longer a native "low-code" way of using them. This does mean that the documentation has to stay for those people who use Java actions.
In the near future, Mendix is planning to introduce a concept of entities which can present the results of OQL queries and be used as if they were actual Mendix entities. This is the low-code successor to Datasets. I do not have a firm launch date for this, but I understand that work is well advanced on it, so keep an eye out.
In the meantime, I am working on a lot of new documentation around OQL and related subjects like Datasets and I hope the result will be a much clearer explanation of all these topics.
Thanks very much for getting in touch. If you spot anything else in the documentation that could be clearer please let us know.
Yours
Mark van Ments

Hi Mark,
Thanks for the quick response. My intent was NOT to remove the documentation, but to specify the purpose of datasets. In the documentation for Mx8 and 9, the first line of the 1 Introduction specifies the intent:

A dataset can be used to ...

The current Mx10 documentation only specifies how datasets are defined. But a Mx newbie arriving on the doc would say to herself "OK, now that I know how datasets are defined... what can I DO with them?"
My suggestion was to add a short description about the Java actions like you mentioned, as the first line in the 1 Introduction section to show the purpose of Datasets

Hi Dan,
Thanks for the clarification and suggestion. I'll look into the best text to put here until such time as we update the whole Dataset/OQL section.
I'll reopen this issue to remind me to pick it up.
Yours
Mark van Ments


fix: SetViewport should set ViewPortCoordinates

GitHub Issue: #

Proposed Changes
Make pushpin update from change in ViewPortCoordinates
Update ViewPortCoordinates when setting viewport programmatically.

Bug fix

What is the current behavior?
Setting the viewport programmatically does not set a ViewPortCoordinate and thus pushpin are  updated with null.
What is the new behavior?
Setting the viewport programmatically sets a ViewPortCoordinate and update pushpins.
Checklist
Please check if your PR fulfills the following requirements:

[ ] Documentation has been added/updated
[ ] Automated Unit / Integration tests for the changes have been added/updated
[ ] Contains NO breaking changes
[ ] Updated the Changelog
[ ] Associated with an issue

Other information

Is there a better way to update the ViewPortCoordinates?

I don't see other way.


Rename prop title to heading in Modal

Fixes #802
Additional description
Renamed the prop title of Modal Component to heading

CONTRIBUTOR checklist (do not remove)
Please complete for every pull request

[x] First-time contributors should sign the Contributor License Agreement.  If you haven't before, wait a few minutes and a bot will comment on this pull request with instructions.
[x] npm run lint:fix has been run and linting passes.
[ ] Mocha, Jest (Storyshots), and components/component-docs.json CI tests pass (npm test).
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[x] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[x] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

REVIEWER checklist (do not remove)

[ ] TravisCI tests pass. This includes linting, Mocha, Jest, Storyshots, and components/component-docs.json tests.
[ ] Tests have been added for new props to prevent regressions in the future. See readme.
[ ] Review the appropriate Storybook stories. Open http://localhost:9001/.
[ ] The Accessibility panel of each Storybook story has 0 violations (aXe). Open http://localhost:9001/.
[ ] Review tests are passing in the browser. Open http://localhost:8001/.
[ ] Review markup conforms to SLDS by looking at DOM snapshot strings.

Required only if there are markup / UX changes

[ ] Add year-first date and commit SHA to last-slds-markup-review in package.json and push.
[ ] Request a review of the deployed Heroku app by the Salesforce UX Accessibility Team.
[ ] Add year-first review date, and commit SHA, last-accessibility-review, to package.json and push.
[ ] While the contributor's branch is checked out, run npm run local-update within locally cloned site repo to confirm the site will function correctly at the next release.

Please make this backward compatible with title usage. Something like props.title || props.heading. You may need an ESlint disable comment.

I will work on it asap, and add it on check-props to alert about depreciation.

Hey @interactivellama,
I have added backward compatibility, and it now shows a warning too -

Looks like a lint issue. Please review npm run lint output.


Add getting started hello world sample for Endpoints gRPC.

cc @lesv
Hello World code is from here: https://github.com/grpc/grpc-java/tree/master/examples
I added the cli lib to the client and the interceptor class to insert the api key. Also, I separated out the api/client/server into different directories.
I added the endpoints integration including the api_config.yaml, Dockerfile, and container-engine.yaml

cc @gguuss In case you're interested in how the gradle config came out.

@lesv Comments addressed. Let me know if there is a boilerplate you want me to use at the top of the README. I'm mostly just trying to paste all the bash commands needed to make the sample work, so the writers can use them for the Quickstart.
I forgot to mention that Gradle doesn't need to be installed the wrapper takes care of that (./gradlew)


How to set a map value

Hi all:
I want to set a map data with RedisMap

let redis_key = "KEYS".into();
let mut redis_map_value = RedisMap::new();
redis_map_value.insert(
       "foo_key".to_string(),
      RedisValue::Integer(123),
 );
let value = RedisValue::Map(redis_map_value);

let _ = redis_client
                .set::<RedisValue, String, RedisValue>(
                    redis_key,
                    value,
                    Some(Expiration::EX(10)),
                    None,
                    false,
                )
                .await;

No error was found, but I can not get the key and value in Redis server also, what's happened, and how to do that?

Ah I should do a better job documenting this, but RedisMap was built to be a NewType in order to support generic inputs on certain functions. It is designed to be used as an intermediate type so callers can use HashMap or BTreeMap, but it's rare for a caller to need to manually construct a RedisMap by hand.
In your case you can probably collapse that code into this:
let _: () = redis_client.set("foo_key", 123, Some(Expiration::EX(10), None, false).await?;

But if you did need to use a map, such as for HSET, you could do it like so:
let mut values: HashMap<String, i64> = HashMap::new(); // or BTreeMap, etc
values.insert("bar".into(), 123);

let _: () = redis_client.hset("foo", values).await?;

A quick note on the NewType values such as RedisMap - they are not as easy to use in the current 4.3.2 version on crates.io as I'd like. I'm a few days away from releasing 5.0.0 which makes some big ergonomics improvements to these types, and these interfaces should be easier to use then.

The hset command seems what I want, Thanks.

I found I can not set Expiration with hset, How to do that as set ?


client/server_args with spaces in them?

Hi,
Thanks for sharing this interesting work!
I am trying to fuzz a proprietary binary/client where client_args and server_args have spaces in them - for example --server --arg1 value1 --arg2 value2 --arg3
I am fairly sure I am missing something json related here but if I try to run the session with just 1 argument I get expected output, if I try with 2 arguments I get output I would expect if I missed the spaces out.
I am guessing I need to do something different to ensure the spaces are not stripped as if I recall correctly json strips spaces out, any pointers would be appreciated?
Alan

Just adding multiple args should work, similar to this:
https://github.com/fgsect/FitM/blob/6e851f3bbb4406280c42e30f06da3fa1fe7baf33/config/fitm-args.ts3.json#L10
You'd do for example
"server_args": ["--server", "--arg1", "value1", "--arg2", "value2", "--arg3"],

Thanks, this does get me further.  After completing this I run into criu complaining that it wants netspace to dump a tun link:
(00.012713) Error (criu/tun.c:306): tun: Net namespace is required to dump tun link
So I thought, ok thats easy, run the binary via unshare -n, however now I run into a similar problem to my args.  It looks like the spaces are stripped out of the command.  I did try ["modifying", "the", "client"], etc lines similarly to the args lines, but it seems it wants a string and not a sequence.  I guess this means I cant fuzz this application in this way?

The arg list gets passed to the final process here:
https://github.com/fgsect/FitM/blob/6e851f3bbb4406280c42e30f06da3fa1fe7baf33/src/lib.rs#L296
It should not strip anything?
If your target really needs a single arg with a space in between, you would want to do it "like this" but that would be very uncommon

Its not the arg list I am struggling with now, criu wants the application running in a separate namespace (I believe?) so I tried modifying "client": and "server": lines adding /usr/bin/unshare -n to the start.  Like "client": "/usr/bin/unshare -n /path/to/binary",
Upon running it like this I get a "no such file or directory" error in active-state/stdout which suggests to me that the spaces are being stripped out of the binary path?

Ah yes you want to specify the files to be included in the namespace/snapshot, see
https://github.com/fgsect/FitM/blob/6e851f3bbb4406280c42e30f06da3fa1fe7baf33/config/fitm-args.ts3.json#L15
Basically the namespace starts a new chroot env and we copy everything we need into it to run

I am not sure what you mean here, I tried adding the path to the directory with the binary in it to "server_files": ["/path/to/dir/with/binary"]
But I still see Error while loading /usr/bin/unshare -n /path/to/dir/with/binary/actualbinary: No such file or directory in active-state/stdout so I feel like I am barking up the wrong tree?

The path inside the namespace might be different, the files get copied in, if that makes sense?
Maybe if you run it with the QEMU_STRACE=1 env variable set (in the config Json) you can see which path it tries to access

I am already running with   "server_envs": {"QEMU_STRACE": "1"},
Where would I see the errors which might help me diagnose what is wrong?
What is server_files supposed to be set to?  Full path to each required binary? Something else?

You'd see it in the stderr file (or whatever the name is).
unshare -n creates a new namespace, I's not really be surprised if that breaks things. Why do you need it?

Because criu is complaining that I need one if I dont use one:
(00.012713) Error (criu/tun.c:306): tun: Net namespace is required to dump tun link
Maybe its not possible to fuzz vpn server/client in this manner?

I guess the tub device needs to be part of the namespace? It's a rather low level component, I wouldn't know the answer. Likely our network emulator wouldn't work on the tun device, either

I am only really interested in fuzzing the negotiation phase of the connection, not the established connection once its created (where data would flow over the tun device).  Does this change anything?

Can you maybe nop out all tun device interactions? That'd probably be the easiest solution.
Else you may need to add the tun device to the namespace FitM creates somehow

Heyhey,
cool to see that you are testing the fuzzer :)!
Can you try to change this line to look like this: unsafe { sys_clone(libc::CLONE_NEWNET | libc::CLONE_NEWPID | libc::CLONE_NEWNS | libc::SIGCHLD)? };?
This is the function we use to create the new namespaces in which the targets will get restored. Adding CLONE_NEWNET will spawn the target inside a new net ns. This worked for me in the sense that I could see a different net namespace id inside the target, compared to the net ns on the host. I checked by adding lsns to the restore.sh.tmp. This way the restore script will print the namespace ids before restoring the process.
I am not sure if you really want to do this as your target might now not have access to the tun interface that you possibly created manually in the initial net ns(?).
Otherwise you could try to run unshare -n /bin/bash before starting fitm all together?

Thanks for your input.  Running the entire session in an 'unshare -n /bin/bash' session, and the edit you posted above both result in things getting further before bailing out.  Both methods seem to achieve the same outcome.
It now seems to be bailing out because its trying to read from /dev/urandom which apparently isnt available.  I did try adding /dev/urandom to the server_files but this didnt help.

My guess would be that something gets messed up with /dev because/while we are creating a new mount ns before restoring. I will have to take another look tomorrow :)

Hm. So I have been trying to open /dev/urandom in the restore script while having the above patch in namespacing.rs. Works fine. I also ran bash in it's own namespace like this unshare -n -m -p --fork /bin/bash - no problem opening /dev/urandom.
Can you see the open syscall failing in the strace?
If so you could patch do_openat to gather some information on what is there and what isn't. Not sure what to look for here.
A way to fake /dev/urandom could be to bind mount a text file to that path during our namespace setup function. The mount call would go here. In the lines above you can see how we are mounting the proc-fs. What you would want to do there is:
cat "randomwhoooo" > /some/path
mount --bind /some/path /dev/urandom

sauce
Hope this helps!

Thanks, very interesting points.  I had presumed that for fuzzing purposes a static set of 'random' data might be better as I've had interesting problems fuzzing stuff that uses random data inputs in the past.
I am only guessing at the issue here.  A fresh pair of eyes suggests I actually still have a namespace related problem.  I get the same pattern of errors with the patch above, or running inside bash ran via unshare -n.
Here is more information:
sudo rm -rf ./active-state
sudo rm -rf ./cmin-tmp
sudo ./target/release/fitm config/fitm-args.redacted1.json
cwd: "/home/alan/scratch/FitM"
__________________  ___

/ /  /  _/  |/  /
/ /   / /  / / / /|/ /
/ / / /  / / / /  / /
//   // // //  /_/
File fitm-state.json not found. Restarting from scratch.
No valid state to resume. Starting fresh :)
==== [] Time start init_run: 2022-03-28 21:33:30 ====
[] Init run finished with exit code None
[] Target was killed by signal. Assuming dump success.
[] Init run finished with exit code Some(0)
[!] Unexpected exit status '0' from snapshot creation.
thread 'main' panicked at 'Namespace call failed with error Custom { kind: Other, error: "[!] criu dump failed, check active-state dir." }', src/namespacing.rs:135:31
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.
[*] Init run finished with exit code Some(255)
[!] Unexpected exit status '255' from snapshot creation.
thread 'main' panicked at 'Namespace call failed with error Custom { kind: Other, error: "[!] criu dump failed, check active-state dir." }', src/namespacing.rs:135:31
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.
thread 'main' panicked at '[!] Snapshot in init_run failed. Check latest active-state folder for clues.', src/lib.rs:360:17
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.
make: *** [Makefile:40: run] Error 101
End of criu.log:
(00.014877) 16865 fdinfo 9: pos:                0 flags:           104002/0
(00.014894) Error (criu/tun.c:306): tun: Net namespace is required to dump tun link
(00.014912) ----------------------------------------
(00.014933) Error (criu/cr-dump.c:1351): Dump files (pid: 16865) failed with -1
(00.014981) Waiting for 16865 to trap
(00.015143) Daemon 16865 exited trapping
(00.015156) Sent msg to daemon 3 0 0
(00.015168) Force no-breakpoints restore
(00.015241) 16865 was trapped
(00.015249) 16865 (native) is going to execute the syscall 45, required is 15
(00.015301) 16865 was trapped
(00.015306) - Expecting exit (00.015347) 16865 was trapped (00.015353) 16865 (native) is going to execute the syscall 186, required is 15 (00.015393) 16865 was trapped (00.015397) - Expecting exit
(00.015439) 16865 was trapped
(00.015445) 16865 (native) is going to execute the syscall 1, required is 15
pie: 16865: __fetched msg: 3 0 0
(00.015510) 16865 was trapped
(00.015517) - Expecting exit (00.015571) 16865 was trapped (00.015577) 16865 (native) is going to execute the syscall 186, required is 15 (00.015616) 16865 was trapped (00.015621) - Expecting exit
(00.015661) 16865 was trapped
(00.015667) 16865 (native) is going to execute the syscall 186, required is 15
(00.015706) 16865 was trapped
(00.015710) - Expecting exit (00.015752) 16865 was trapped (00.015758) 16865 (native) is going to execute the syscall 1, required is 15 pie: 16865: 16865: new_sp=0x7f0f2b41fa88 ip 0x7f0f2bef47bc (00.015810) 16865 was trapped (00.015816) - Expecting exit
(00.015857) 16865 was trapped
(00.015863) 16865 (native) is going to execute the syscall 3, required is 15
(00.015925) 16865 was trapped
(00.015929) - Expecting exit (00.015963) 16865 was trapped (00.015969) 16865 (native) is going to execute the syscall 3, required is 15 (00.016031) 16865 was trapped (00.016036) - Expecting exit
(00.016078) 16865 was trapped
(00.016085) 16865 (native) is going to execute the syscall 15, required is 15
(00.016121) 16865 was stopped
(00.016336) Unlock network
(00.016346) Unfreezing tasks into 1
(00.016350)     Unseizing 16865 into 1
(00.016385) Error (criu/cr-dump.c:1768): Dumping FAILED.
stderr file:
16865 brk(NULL) = 0x0000004000220000
16865 uname(0x4001a1ff10) = 0
16865 openat(-100,"/usr/lib/x86_64-linux-gnu/coreutils/libstdbuf.so",O_RDONLY|O_CLOEXEC) = 3
16865 read(3,0x1a1eb38,832) = 832
16865 fstat(3,0x0000004001a1e9d0) = 0
16865 mmap(NULL,16488,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x0000004001a4d000
16865 mmap(0x0000004001a4e000,4096,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x1000) = 0x0000004001a4e000
16865 mmap(0x0000004001a4f000,4096,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x2000) = 0x0000004001a4f000
16865 mmap(0x0000004001a50000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x2000) = 0x0000004001a50000
16865 close(3) = 0
16865 access("/etc/ld.so.preload",R_OK) = -1 errno=2 (No such file or directory)
16865 openat(-100,"/etc/ld.so.cache",O_RDONLY|O_CLOEXEC) = 3
16865 fstat(3,0x0000004001a1f4c0) = 0
16865 mmap(NULL,68375,PROT_READ,MAP_PRIVATE,3,0) = 0x0000004001a52000
16865 close(3) = 0
16865 openat(-100,"/lib/x86_64-linux-gnu/libpthread.so.0",O_RDONLY|O_CLOEXEC) = 3
16865 read(3,0x1a1f688,832) = 832
16865 fstat(3,0x0000004001a1f520) = 0
16865 mmap(NULL,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x0000004001a63000
16865 mmap(NULL,132288,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x0000004001a65000
16865 mmap(0x0000004001a6b000,61440,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x6000) = 0x0000004001a6b000
16865 mmap(0x0000004001a7a000,24576,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x15000) = 0x0000004001a7a000
16865 mmap(0x0000004001a80000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x1a000) = 0x0000004001a80000
16865 mmap(0x0000004001a82000,13504,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED,-1,0) = 0x0000004001a82000
16865 close(3) = 0
16865 openat(-100,"/lib/x86_64-linux-gnu/libm.so.6",O_RDONLY|O_CLOEXEC) = 3
16865 read(3,0x1a1f668,832) = 832
16865 fstat(3,0x0000004001a1f500) = 0
16865 mmap(NULL,1581384,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x0000004001a86000
16865 mmap(0x0000004001a93000,651264,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0xd000) = 0x0000004001a93000
16865 mmap(0x0000004001b32000,872448,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0xac000) = 0x0000004001b32000
16865 mmap(0x0000004001c07000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x180000) = 0x0000004001c07000
16865 close(3) = 0
16865 openat(-100,"/lib/x86_64-linux-gnu/libdl.so.2",O_RDONLY|O_CLOEXEC) = 3
16865 read(3,0x1a1f648,832) = 832
16865 fstat(3,0x0000004001a1f4e0) = 0
16865 mmap(NULL,16656,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x0000004001c09000
16865 mmap(0x0000004001c0a000,4096,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x1000) = 0x0000004001c0a000
16865 mmap(0x0000004001c0b000,4096,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x2000) = 0x0000004001c0b000
16865 mmap(0x0000004001c0c000,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x2000) = 0x0000004001c0c000
16865 close(3) = 0
16865 openat(-100,"/lib/x86_64-linux-gnu/libc.so.6",O_RDONLY|O_CLOEXEC) = 3
16865 read(3,0x1a1f628,832) = 832
16865 fstat(3,0x0000004001a1f4c0) = 0
16865 mmap(NULL,1837056,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE,3,0) = 0x0000004001c0e000
16865 mprotect(0x0000004001c30000,1658880,PROT_NONE) = 0
16865 mmap(0x0000004001c30000,1343488,PROT_EXEC|PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x22000) = 0x0000004001c30000
16865 mmap(0x0000004001d78000,311296,PROT_READ,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x16a000) = 0x0000004001d78000
16865 mmap(0x0000004001dc5000,24576,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_DENYWRITE|MAP_FIXED,3,0x1b6000) = 0x0000004001dc5000
16865 mmap(0x0000004001dcb000,14336,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED,-1,0) = 0x0000004001dcb000
16865 close(3) = 0
16865 mmap(NULL,8192,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,-1,0) = 0x0000004001dcf000
16865 arch_prctl(4098,274909166464,274909168800,144,1,64) = 0
16865 mprotect(0x0000004001dc5000,16384,PROT_READ) = 0
16865 mprotect(0x0000004001c0c000,4096,PROT_READ) = 0
16865 mprotect(0x0000004001c07000,4096,PROT_READ) = 0
16865 mprotect(0x0000004001a80000,4096,PROT_READ) = 0
16865 mprotect(0x0000004001a50000,4096,PROT_READ) = 0
16865 mprotect(0x000000400019a000,4096,PROT_READ) = 0
16865 mprotect(0x0000004001a48000,4096,PROT_READ) = 0
16865 munmap(0x0000004001a52000,68375) = 0
16865 set_tid_address(274909167184,274905301944,274909166464,274905471472,274905476752,47) = 16865
16865 set_robust_list(274909167200,24,274909166464,274905471472,274905476752,47) = -1 errno=38 (Function not implemented)
16865 rt_sigaction(32,0x0000004001a20100,NULL) = 0
16865 rt_sigaction(33,0x0000004001a20100,NULL) = 0
16865 rt_sigprocmask(SIG_UNBLOCK,0x0000004001a20278,NULL) = 0
16865 prlimit64(0,3,0,274905301600,0,47) = 0
16865 gettimeofday(0x0000004001a1fd60,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 17000},NULL)
16865 brk(NULL) = 0x0000004000220000
16865 brk(0x0000004000241000) = 0x0000004000241000
16865 openat(-100,"/etc/localtime",O_RDONLY|O_CLOEXEC) = 3
16865 fstat(3,0x0000004001a1fbb0) = 0
16865 fstat(3,0x0000004001a1f9e0) = 0
16865 read(3,0x2204b0,4096) = 3687
16865 lseek(3,-2347,SEEK_CUR) = 1340
16865 read(3,0x2204b0,4096) = 2347
16865 close(3) = 0
16865 gettimeofday(0x0000004001a1fd60,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 27392},NULL)
16865 stat("/etc/localtime",0x0000004001a1fbb0) = 0
16865 gettimeofday(0x0000004001a1fd60,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 27608},NULL)
16865 stat("/etc/localtime",0x0000004001a1fbb0) = 0
16865 gettimeofday(0x0000004001a1fd60,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 27671},NULL)
16865 stat("/etc/localtime",0x0000004001a1fbb0) = 0
16865 gettimeofday(0x0000004001a1fd60,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 27829},NULL)
16865 stat("/etc/localtime",0x0000004001a1fbb0) = 0
16865 gettimeofday(0x0000004001a1fd60,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 27898},NULL)
16865 stat("/etc/localtime",0x0000004001a1fbb0) = 0
16865 gettimeofday(0x0000004001a1fd60,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 27959},NULL)
16865 stat("/etc/localtime",0x0000004001a1fbb0) = 0
16865 fstat(1,0x0000004001a1fca0) = 0
16865 write(1,0x221e20,38) = 38
16865 write(1,0x221e20,57) = 57
16865 write(1,0x221e20,46) = 46
16865 write(1,0x221e20,99) = 99
16865 write(1,0x221e20,99) = 99
16865 write(1,0x221e20,47) = 47
16865 write(1,0x221e20,53) = 53
16865 clock_getres(CLOCK_MONOTONIC_COARSE,0x0000004001a1fda0) = 0 ({tv_sec = 0,tv_nsec = 4000000})
16865 clock_gettime(CLOCK_MONOTONIC,0x0000004001a1fda0) = 0 ({tv_sec = 202141,tv_nsec = 184202960})
16865 epoll_create1(524288) = 3
16865 pipe2(274879600672,524288,524288,-1014,202,1) = 0
16865 write(5,0x1a1fd3b,1) = 1
16865 futex(0x000000400019ee20,FUTEX_PRIVATE_FLAG|FUTEX_WAKE,2147483647,NULL,0x00000000000000ca,202) = 0
16865 pipe2(274879605992,526336,526336,0,202,1) = 0
16865 eventfd2(0,526336) = 8
16865 gettimeofday(0x0000004001a1fd40,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 33448},NULL)
16865 stat("/etc/localtime",0x0000004001a1fb90) = 0
16865 gettimeofday(0x0000004001a1fd10,NULL) = 0 ({tv_sec =<PHONE_NUMBER>,tv_usec = 33967},NULL)
16865 stat("/etc/localtime",0x0000004001a1fb60) = 0
16865 socket(PF_INET,SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK,IPPROTO_IP) = 999
16865 setsockopt(999,1,2,274905300316,4,274905299459) = 0
16865 bind(999,{sin_family=AF_INET,sin_port=htons(19655),sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 0
16865 setsockopt(999,1,7,274905300476,4,274905299459) = 0
16865 setsockopt(999,1,8,274905300476,4,274905299459) = 0
16865 openat(-100,"/dev/net/tun",O_RDWR) = 9
16865 ioctl(9,TUNSETIFF,{"redacted-test",4097}) = 0 ({"redacted-test",4097})
16865 epoll_ctl(3,1,9,274905300384,-72340172838076673,-72340172830444956) = 0
16865 epoll_ctl(3,2,9,274905300384,-72340172838076673,-72340172830444956) = 0
16865 ioctl(9,FIONBIO,1) = 0
16865 openat(-100,"/home/alan/scratch/redacted/certs/shared.crt",O_RDONLY) = 10
16865 fstat(10,0x0000004001a1f7b0) = 0
16865 fstat(10,0x0000004001a1f8a0) = 0
16865 lseek(10,0,SEEK_SET) = 0
16865 read(10,0x222e30,1294) = 1294
16865 lseek(10,1294,SEEK_SET) = 1294
16865 close(10) = 0
16865 openat(-100,"/home/alan/scratch/redacted/certs/server.key",O_RDONLY) = 10
16865 fstat(10,0x0000004001a1f7b0) = 0
16865 fstat(10,0x0000004001a1f8a0) = 0
16865 lseek(10,0,SEEK_SET) = 0
16865 read(10,0x222e30,1704) = 1704
16865 lseek(10,1704,SEEK_SET) = 1704
16865 close(10) = 0
16865 openat(-100,"/dev/urandom",O_RDONLY) = 10
16865 read(10,0x1a1fd60,104) = 104
16865 close(10) = 0
16865 epoll_ctl(3,2,9,274905300396,274909142080,274880137616) = -1 errno=2 (No such file or directory)
16865 rt_sigaction(SIGPIPE,0x0000004001a1fbc0,0x0000004001a1fc60) = 0
16865 clock_gettime(CLOCK_MONOTONIC,0x0000004001a1fde0) = 0 ({tv_sec = 202141,tv_nsec = 208895265})
16865 epoll_ctl(3,1,6,274905288100,274905300400,274880137616) = 0
16865 epoll_ctl(3,1,8,274905288100,274905300400,274880137616) = 0
16865 epoll_ctl(3,1,999,274905288100,274905300400,274880137616) = 0
16865 epoll_ctl(3,1,9,274905288100,274905300400,274880137616) = 0
16865 epoll_wait(3,274905288112,1024,4294967295,274905300400,274880137616) = 1
16865 clock_gettime(CLOCK_MONOTONIC,0x0000004001a1ccb0) = 0 ({tv_sec = 202141,tv_nsec = 209940575})
To me this seems the issue is more complicated than I originally thought, perhaps the netspace issue is not resolved though it appears to be getting further when ran with the patch above, or via bash started with unshare -n.

Do you want to have a debugging session to take a look? Somewhere, where I can contact you?

Sure, do you have an email address or method I can contact you off list?

Use this :)
<EMAIL_ADDRESS>

After having a debugging session we found that adding an unshare -n here resolves the problem about criu not being able to dump the tun interface. The patch described earlier seemingly doesn't do the same. Have to investigate what else unshare -n does..

Hiya,
I've had this running for a few days now, number of testcases is increasing gradually in the expected manner.  No errors to note really as far as I can see.  I am still not getting any generation 3 snapshots, but this may be expected?
Since I now have a pile of test cases I am of course now itching to perform some manual triage of these to see if anything exciting is happening.  There doesn't seem to be much documentation in regard of where to even begin with this.  The test cases look somewhat like a dump of the traffic between the two daemons being tested, however I tried replaying them like a PCAP file, feeding them into restore.sh, etc and am not getting anywhere.
Presumably the best way to triage this further would be to 'replay' the test case, capturing STDOUT/STDERR for client/server and a pcap file of the traffic which results.  I can then perform automated analysis of the output looking for anything interesting but since I lack an understanding of what format the testcases are taking I'm not sure where to begin...
alan@debian-KVM:~/scratch/FitM/active-state$ sudo ./restore.sh ../cmin-tmp/imported1000
++ realpath ../cmin-tmp/imported1000

export INPUT_FILENAME=/home/alan/scratch/FitM/cmin-tmp/imported1000
INPUT_FILENAME=/home/alan/scratch/FitM/cmin-tmp/imported1000
ENVFILE=envfile
env
sort
pwd
/home/alan/scratch/FitM/active-state
++ grep -o 'pipe:[.*]'
++ head -n 1
++ cat ./pipes
PIPE1='pipe:[34598034]'
++ cat ./pipes
++ grep -o 'pipe:[.*]'
++ head -n 2
++ tail -n 1
PIPE2='pipe:[34598035]'
echo -n ''
[[ -z '' ]]
CRIU_SNAPSHOT_DIR=./snapshot
[[ -z '' ]]
exec
exec
echo 32768
../criu/criu/criu restore -d -vvv -o ../restore.log --images-dir ./snapshot --inherit-fd 'fd[198]:pipe:[34598034]' --inherit-fd 'fd[199]:pipe:[34598035]'


Is custom domain mandatory

Hi ,
Thanks for creating this app.
I am trying to  deploy this app without custom domain, but script is throwing error. Does custom domain is mandatory?
Also teamhelper.js is throwing error:
App resource defined in manifest and iframe origin do not match

Yes or you can use ngrok

@kandari7 Can you please explain why custom domain is mandatory to use?

The app will be deployed over ms team, so the teams will call the custom domain and the CNAME entry will hit the azure website.

Hi,
I'm having the same issue here. I'm trying to deploy my app which works great locally with ngrok, but when I tried deploying it to a dedicated server/domain, I started seeing the error above - App resource defined in manifest and iframe origin do not match
My manifest file is very similar to the one I use for local development. The Application ID URI is: api://<my-domain>/<sso-app-id> while my tab's content url is https://<my-domain>/tab and the domain is also added in the valid domains array.
Any ideas why I keep seeing that error?


refactor(fromPromise): expose fromPromise through rxjs export

Fixes #3374

Coverage increased (+0.0004%) to 97.545% when pulling 8903397aa8a3a16afc941233bc4fb60cda1ffc92 on jasonaden:export_fromPromise into 9684e4648f49f156e1a771f429c76e00d343d049 on ReactiveX:master.


Allow a Stripe Connect account id to be passed during initialization for ApplePay

Currently when creating initializing the plugin I pass the Stripe public key.
import {
  Stripe as StripeCapacitor,
} from '@capacitor-community/stripe';
await StripeCapacitor.setPublishableKey('pk_test_....');

The initialization succeeds.
However requests to charge the payment intent on behalf of connected accounts will fail.
The stripe package is missing the 'Stripe-Account' header. The platform cannot charge payment intents with an application fee without the header.
The fix would be to add the 'Stripe-Account' header to requests as per the Stripe documentation
Essentially updating the initialization options interface to pass in the Stripe connect account id so that requests can be made on their behalf:
 this.stripe = Stripe(environment.stripeMyPublicKey, {
          stripeAccount: connectedStripeAccountId,
        });

@yllaw  This is the first time I have heard of this function. It's easy to implement, so we'll be working on it in a few days.

Thank you!

I released v3.8.0-0. Please try this: npm install<EMAIL_ADDRESS>https://github.com/capacitor-community/stripe/releases/tag/v3.8.0-0
note: if you use on web, you should update @stripe-elements/stripe-elements to 2.0.1.

@rdlabo Thank you for this!
Apple pay works as intended.
I have not been able to test Google pay yet.

@yllaw I'm glad you got it sorted out!
Did you use this plugin for production? If yes, please tell us what app. This help development this plugin.
👉 https://github.com/capacitor-community/stripe/issues/145
Thanks.


Add description for the API repsonse

The description for the format of the responses from the API is just a placeholder. Add a full description. You can find sample responses from the official API documentation.

A Swagger API specification would be interesting but only as a way of learning the tool. The practical benefits to the project, particularly since the Postman docs can be used to generate client code, are less clear.


Remove get_ports_counts() from sol_flow_node_type

We know the sizes upfront and our design implies that these values won't change for an existing type, so set them sooner in a more convenient way. As a bonus, fix a longstanding TODO item.

Ack

Applied in 6ea341534de4a33239883bd538f84307c5748bad and parents.


Adds under 13 check to all opt in signups

Fixes #4514
Prevents opt in signups from members under 13 being subscribed to any messaging. Problem was we only had under 13 logic in the User signup but not the opt in signup.
@angaither can you review?

:+1:


Create iitis.txt

Institute of Theoretical and Applied Informatics, Polish Academy of Sciences

@webs1821 Please provide us with an URL of a page on the official website where an IT-related long-term (>1 year) course is offered by the organization. Thank you.

@philipto https://www.iitis.pl/en/mlen/about-institute - IITiS is a research institute, a part of Polish Academy of Sciences. It's public entity. At the institute the student works on research to gain a PhD. It is a little more exclusive group than university students. Is it sufficient?

@webs1821 As noted in #4166 we can not satisfy this request. I am sorry, I have to close it without merging. Thank you for the understanding!


Doesn't compile under Linux (WSL)

I'm experimenting with Switf and found your project to bring SDL2 to Swift.
Unfortunately, it doesn't compile and bails out with the following  message:
SwiftSDL git:(master) make swift build -Xlinker -L/opt/homebrew/lib -Xlinker -lsdl2 -Xlinker -lsdl2_image 'swiftsdl': error: invalidManifestFormat("Missing or empty JSON output from manifest compilation for swiftsdl", diagnost icFile: nil) make: *** [Makefile:7: build] Error 1
Do you have any advice of where to start looking?  I'm new to Swift and SDL but not programming in general (mostly C, Ruby etc).

Unfortunately, I have zero experience with Swift on Windows/WSL. However, this project (as-is) requires the SDL2 libraries, and specifically on macOS, expects them to be installed using Homebrew.
You could try installing Homebrew under WSL, then use brew to install SDL2 libraries. If you're able to get that far, try running sdl2-config to see the location of where the libs are on the WSL system.
That's as much help as I can offer. Good luck.

I'm trying to do the same thing. I'm getting one step beyond you @AlectronikForge -- your error looks like a Package.swift formatting issue from the error name. simplify it until it compiles and add back in as you go
Even still, i'm compiling but getting a linker error when trying to compile the first example in my own project on WSL like this:
error: link command failed with exit code 1 (use -v to see invocation)
/home/arckex/Advent-of-Code-Swift/.build/x86_64-unknown-linux-gnu/debug/SwiftSDL2.build/SDLTexture.swift.o:SDLTexture.swift.o:function $sSo15IMG_LoadTextureys13OpaquePointerVSgAD_SPys4Int8VGSgtFTO: error: undefined reference to 'IMG_LoadTexture'

maybe all related to a similar error i get when trying to make this project itself
/home/arckex/SwiftSDL/Sources/CreateWindowDemo/main.swift:55:20: error: cannot find 'SDL_KeyCode' in scope
            switch SDL_KeyCode(UInt32(event.key.keysym.sym)) {
                   ^~~~~~~~~~~

@andymule similarly: are you also able to simplify the CreateWindowDemo further until it compiles? Eg., comment out input checks. You seem pretty close! 🎉
Even with SDL2, there's going to be platform-specific code paths that exist. While I don't doubt SDL2's ability to handle a multitude of different platforms, is there evidence from the WSL/C/SDL2 community that a working baseline exists?

Same linker error when I comment out the input stuff, so it seems like 2 separate but (relatively small!) issues. 1) missing/wrong input header for KeyCode 2) bad link on loadTexture
 /home/arckex/SwiftSDL/.build/x86_64-unknown-linux-gnu/debug/SwiftSDL2.build/SDLTexture.swift.o:SDLTexture.swift.o:function $sSo15IMG_LoadTextureys13OpaquePointerVSgAD_SPys4Int8VGSgtFTO: error: undefined reference to 'IMG_LoadTexture'
This demo DOES run for me (opens a window!), but the library seems much less featured
https://github.com/ctreffs/SwiftSDL2

Same linker error when I comment out the input stuff, so it seems like 2 separate but (relatively small!) issues. 1) missing/wrong input header for KeyCode 2) bad link on loadTexture
 /home/arckex/SwiftSDL/.build/x86_64-unknown-linux-gnu/debug/SwiftSDL2.build/SDLTexture.swift.o:SDLTexture.swift.o:function $sSo15IMG_LoadTextureys13OpaquePointerVSgAD_SPys4Int8VGSgtFTO: error: undefined reference to 'IMG_LoadTexture'
This demo DOES run for me (opens a window!), but the library seems much less featured https://github.com/ctreffs/SwiftSDL2

sdl_image is a separate library. Be sure you've installed it and it's being linked (much like you did for sdl itself).

for the linking, it's a capitalization error w.r.t. pkg-config (at least on Linux)
here's the fix  (just capitalizing the pkgConfig name from sdl to SDL)
.systemLibrary( name: "CSDL2_Image", pkgConfig: "SDL2_image"
        , providers: [
            .brew(["sdl2_image"]),
            .apt(["libsdl2-image-dev"]) ]
      ),
      .systemLibrary( name: "CSDL2_Mixer", pkgConfig: "SDL2_mixer"
        , providers: [
            .brew(["sdl2_mixer"]),
            .apt(["libsdl2-mixer-dev"]) ]
      ),
      .systemLibrary( name: "CSDL2_TTF", pkgConfig: "SDL2_ttf"
        , providers: [
            .brew(["sdl2_ttf"]),
            .apt(["libsdl2-ttf-dev"]) ]
      ),

I'll see if i can figure out input stuff tomorrow. Thanks!

I didn't dig all the way into it. I found another SDL lib that had working keyboard input, so it's probably not TOO much work to figure out the difference between them:
https://github.com/fireblade-engine/ecs-demo
I ended up using this raylib port instead of both these libs though:
https://github.com/STREGAsGate/Raylib

FWIW: I been working on a new wrapper, which I have working on Linux
https://github.com/KevinVitale/SDLKit

After a lot of work, I've updated this library significantly. It works more reliably across multiple platforms.
I'm closing this issue. However, I remain open to feedback. Please share your experiences when using SwiftSDL. 🙏


Clean up course title tokenization

Previous regex-based solution broke on any special characters in the title, just splitting the string
on ' - ' seems to work better

I feel like the regex is better for predictable behavior, i.e., the regex will throw an exception is the course isn't formatted correctly whereas this may produce unexpected behavior


How about the tmux.conf of the readme page?

First of all, nice theme, in my opinion, the best I have ever seen.
Can you share the tmux.conf that is used in the screenshots of the readme.md?
tks.

The screenshots in the readme are not in tmux. That is my statusline that I wrote using feline. You can find my feline config here. The top bar is tabby (config here). In my config I generate the highlight groups used for feline and tabby that is done here.

wow! tks!


⚠ Processors has degraded performance

In 07d81f2, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 95 ms

Resolved: Processors performance has improved in 34740d0.


Add funder ID

[
a sh:ValidationResult ;
sh:resultSeverity sh:Warning ;
sh:sourceConstraintComponent sh:MinCountConstraintComponent ;
sh:sourceShape _:n3098 ;
sh:focusNode http://ontology.tib.eu/gesah/ ;
sh:resultPath schema:funder ;
sh:resultMessage “The ontology does not reference any funding institution. The funding instution should be referenced by PIDs (e.g. Research Organisation Registry identifiers, short ROR (https://ror.org/)).”@en ;
] .

DFG ID is https://ror.org/018mejw64.

Done.


Update PathAsFileProvider from core:invalid

Located in: core:invalid
Part of: provider
This is part of the upgrade process for Sponge and is likely involving some work and investigation.
Advice and tips include:

Sometimes things are just a simple method name change
Might be a new class or field
Understanding what the original intention of the target code had
Analyzing whether the functionality achieved by the target class/mixin still exists
Understanding the new functionality in the new Minecraft version that requires rewriting for the functionality
The SpongeAPI usage could very well have gone missing out the window if functionality was deemed unnecessary for release

Updated in https://github.com/SpongePowered/Sponge/commit/93a3b045a8a9b69e0f49ed21263809864d50fb02
Dropped in https://github.com/SpongePowered/Sponge/commit/97ef12fad044e4f95373ea578e1f4f8630dc7d32

Updated in https://github.com/SpongePowered/Sponge/commit/93a3b045a8a9b69e0f49ed21263809864d50fb02
Dropped in https://github.com/SpongePowered/Sponge/commit/97ef12fad044e4f95373ea578e1f4f8630dc7d32


Launch the Debugger when CMAKE_BUILD_TYPE is not "Debug"

in this CMakeLists.txt example, the build type is defined as something other than default which is "Debug":
cmake_minimum_required(VERSION 3.5)
project(intro3)
add_executable(intro3 ./hello.cpp)
set(CMAKE_BUILD_TYPE "Release")

After building the project, When trying to debug, we will get two different error messages. The message doesn't show that there is no Debug target available.

When Debugging from here:

the error message is:
[main] Failed to prepare executable target with name 'undefined'
[extension] [3899] cmake.debugTarget finished (returned null)

When Debugging from here:

the error message is:
[main] Failed to prepare executable target with name 'intro3'
[extension] [7484] cmake.debugTarget finished (returned null)

This will be addressed by https://github.com/microsoft/vscode-cmake-tools/issues/2096.


[Improve][connector-jdbc] Add config item enable upsert by query

Purpose of this pull request
Add support_upsert_by_query_primary_key_exist config item
Fix row field null value write to jdbc statement
Check list

[x] Code changed are covered with tests, or it does not need tests for reason:
[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[x] If necessary, please update the documentation to describe the new feature. https://github.com/apache/incubator-seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

This method has not been pressure tested?

The cdc sink cannot be tested in e2e for the time being


Conda Environment Setting

Hi.
Instruction says to run "pip install requirements.txt", but it is "pip install -r requirements.txt", right?
And my question is about this error;
$ pip install -r requirements.txt
ERROR: Could not find a version that satisfies the requirement clip==1.0 (from versions: 0.0.1, 0.1.0, 0.2.0)
ERROR: No matching distribution found for clip==1.0
How can I download clip==1.0?

Hi, this should be "pip install -r requirements.txt" indeed.
For clip, I think it should work without precising the version ie "pip install clip" (see https://github.com/ZPdesu/Barbershop/issues/18).
I am going to update the readme and requirements file.


[UX Design] Tagging / Annotating additions

We'd like the Burr UI to also facilitate things like annotating or "tagging" the traces that the Burr tracker captures.
For example, I want to annotate whether the result of one action was 👍 or 👎 so I can curate good and bad things. With the bad things I might want to then in another view see them all, similarly with the good ones, and then take various actions with them, e.g. download them. Or create test cases from them.
Where would we fit a tagging / annotating workflow here?

What would a view then look like that shows all the 👍 or 👎 tags/annotations across a project?
Task

design how one might annotate / tag various steps in a trace.
design what an aggregate view over this might look like for a project

Things to take inspiration from:

https://langfuse.com/docs/scores/annotation

Feature merged in #383


Store the certificate step is broken

Looks like the Store the certificate step is incomplete.

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

ID: 6e8a0e46-dab2-122a-bc73-4ae0381b24f5
Version Independent ID: 2c97bc5b-2fc1-0038-d9db-35ac6507ac9d
Content: Create an Azure Key Vault certificate
Content Source: articles/marketplace/cloud-partner-portal/virtual-machine/cpp-create-key-vault-cert.md
Service: marketplace
GitHub Login: @v-miclar
Microsoft Alias: pabutler

@StormRider01 Thanks for the comment. We are actively investigating and will get back to you shortly with an update.

@StormRider01 Verified and updated the document as required. Thanks.


Tuned traffic scenario 06

Description

Increased the gap between the vehicles in flow
Decreased the flow velocity

Where has this been tested?

Platform(s): Ubuntu 18.04
Python version(s): 2.7
CARLA version: Latest

This change is

@fabianoboril please check and let me know if the gap and speed of the flow feels appropriate.


Remove old branches

I think that we can remove the old branches:

templatizeRender (already closed)
2504-kschaaf-templatizer-props (already merged)
fix-rare-ie11-bug (already closed)
2016-kschaaf-computed-setter (already merged)
style-fixes (already merged)
custom-style-fix (already merged)
easy-builds
0.8-preview

and moore...

Most of the branches have been cleaned up, we are down to 34 now. Still leaving this open as there are some branches that need more discussion.


Use github.com/codegangsta/cli for influx cli

This will make the CLI a little cleaner.

@apoydence Thanks for the PR.  We are trying to use as few third party dependancies as we can in this project, so we purposefully didn't use a third party API.
If this becomes too unwieldy in the future, we'll likely hand roll our own encapsulation, as we don't have that heavy of a use case yet.


SDA-6451/Fix: Improve error msg when deletion of admin user fails

When there is a failure deleting the admin user, currently, the Error from target OCP is being wrapped twice with the user friendly "Failed to delete.." msg, once in ClusterService and again in ROSA CLI.
Following the precedent of similar cases. e.g. deleteCluster,   Not wrapping in rosa if its already wrapped by CS.
Refs: https://issues.redhat.com/browse/SDA-6451

/lgtm


Component generator allows invalid names

Taken from https://github.com/donejs/donejs/issues/699 by @tomgreever

When you do donejs add component the wizard allows you to input component names with only one word, like cart or header even though these names aren't allowed. All component tags have to be two words with a dash so that they don't conflict with existing HTML tags. The wizard should error if the user tries to input a single word, and message them to use at least two words separated by a dash.

Or maybe it just adds the package name in front.
Sent from my iPhone

On Aug 25, 2016, at 7:47 AM, Matthew Phillips<EMAIL_ADDRESS>wrote:
Taken from donejs/donejs#699 by @tomgreever 👍
When you do donejs add component the wizard allows you to input component names with only one word, like cart or header even though these names aren't allowed. All component tags have to be two words with a dash so that they don't conflict with existing HTML tags. The wizard should error if the user tries to input a single word, and message them to use at least two words separated by a dash.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Owlkin Frenzy

Describe the bug
A clear and concise description of what the bug is.
Owlkin Frenzy does not show in the buffs under any setting or iteration
To Reproduce
Steps to reproduce the behavior:

Go to 'Talents'
Click on 'Owlikin Frenzy and run the simulation for any number of iterations'
Scroll down to 'Detailed Results/buffs'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Owlkin Frenzy should proc at some point during Thadius/Lotheb/KT, My character Skahn in westfall has it procing 6/3/1 time(s) respectively due to aoe damage taken during those fights
Sim Links and Screenshots
If applicable, add links to your sim settings or screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS] Windows 10
Browser [e.g. chrome, safari] Chrome
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

Owlkin Frenzy Uptime in settings was added for balance


warning fixups, cleanup when unloading

This PR does the following:

The original implementation was using React Native's deprecated mechanism for sending events to Javascript from an iOS Native Module.   I updated the code to base the module off of RCTEventEmitter and use the sendEventWithName method.

I noticed that when reloading my app in the simulator (Cmd+R) the GCDWebServer would be held open and continue holding the port open.   This prevented the reloaded app from starting the server with that same port.    I added code to stop the server when the native module is invalidated/unloaded.

Hi @TomSwift,
Thank you very much for your pull request. It looks good so I will merge it into the next branch. Can you test the next version and when it is stable tell me so that I can merge it to the main branch?
Alwin


KIR module

Hello folks,
Thank you for creating a very useful package for HLA analysis.
I have recently been using a tool to extract KIR genotypes (T1K). The output for one sample looks as below. I have been advised that in the case of 1 below, it is a homozygote.

GENE
Alleles
1
2

KIR2DL1
2
KIR2DL1*004
KIR2DL1*003

KIR2DL2
1
KIR2DL2*001
.

KIR2DL3
1
KIR2DL3*001
.

KIR2DL4
2
KIR2DL4*008
KIR2DL4*005

KIR2DL5A
2
KIR2DL5A*029
KIR2DL5A*001

KIR2DL5B
2
KIR2DL5B*002
KIR2DL5B*004

KIR2DP1
2
KIR2DP1*002
KIR2DP1*001

KIR2DS1
1
KIR2DS1*002
.

KIR2DS2
1
KIR2DS2*001
.

KIR2DS3
1
KIR2DS3*001
.

KIR2DS4
2
KIR2DS4*003
KIR2DS4*001

KIR2DS5
1
KIR2DS5*002
.

KIR3DL1
1
KIR3DL1*001
.

KIR3DL2
2
KIR3DL2*007
KIR3DL2*001

KIR3DL3
2
KIR3DL3*014
KIR3DL3*002

KIR3DP1
1
KIR3DP1*003
.

KIR3DS1
1
KIR3DS1*013
.

However the KIR module looks like it only allows a 1/0 value, and in addition there is not an option to enter allele_1 and allele_2 like the HLA module.
Thank you.

Hi @Pharmacogenetecist,
indeed the midasHLA package does allow to use only gene level KIR calls. If I recall correctly, when we were developing the package there was no tools capable of calling KIRs at the allele resolution.
As for allowing only 1/0 values, I don't think this is true. At least I don't see any code in the package that would force this.
See the following dummy example
> dat_pheno <-
  read.table(
  file = system.file("extdata", "MiDAS_tut_pheno.txt", package = "midasHLA"),
  header = TRUE
  )
> dat_KIR <- readKirCalls(
  file = system.file("extdata", "MiDAS_tut_KIR.txt", package = "midasHLA")
)
> dat_KIR[, 2] <- dat_KIR[, 2] + 5 # here I make it non 0/1
> HLA <- prepareMiDAS(
  kir_calls = dat_KIR,
  colData = dat_pheno,
  experiment = "kir_genes"
)
> HLA_results <- runMiDAS(
  object = HLA_model,
  experiment = "kir_genes",
  correction = "bonferroni",
  exponentiate = TRUE
)
> head(HLA_results)
# A tibble: 6 × 14
  kir.g…¹ p.value p.adj…² estim…³ std.e…⁴ conf.…⁵ conf.…⁶ stati…⁷ Ntotal Ntota…⁸
  <chr>     <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>  <dbl> <formt>
1 KIR3DL1 3.65e-6 5.84e-5   3.43    0.266   2.07    5.91     4.63    853 91.23%
2 KIR2DS4 3.65e-6 5.84e-5   3.43    0.266   2.07    5.91     4.63    853 91.23%
3 KIR2DL3 4.41e-2 7.06e-1   0.628   0.231   0.396   0.983   -2.01    849 90.80%
4 KIR2DS2 8.29e-2 1   e+0   1.26    0.131   0.971   1.62     1.73    455 48.66%
5 KIR2DL2 1.09e-1 1   e+0   1.23    0.131   0.955   1.60     1.60    449 48.02%
6 KIR2DS5 1.14e-1 1   e+0   0.799   0.142   0.605   1.06    -1.58    288 30.80%
# … with 4 more variables: `N(disease=0)` <dbl>,
#   `N(disease=0).percent` <formttbl>, `N(disease=1)` <dbl>,
#   `N(disease=1).percent` <formttbl>, and abbreviated variable names
#   ¹kir.gene, ²p.adjusted, ³estimate, ⁴std.error, ⁵conf.low, ⁶conf.high,
#   ⁷statistic, ⁸Ntotal.percent
# ℹ Use `colnames()` to see all variable names

Going back to the issue you are facing, I think one option you could consider is to summarize your KIR allele data to the gene level, that would allow you to use our standard workflow.
As for the adding new functionality to handle KIR allele calls, this needs a bit more consideration. Could you let me know which software did you use for KIR calling?
@chammer80 do you have any thoughts on KIR analysis at the allele level?

Hi @Pharmacogenetecist,
indeed the midasHLA package does allow to use only gene level KIR calls. If I recall correctly, when we were developing the package there was no tools capable of calling KIRs at the allele resolution.
As for allowing only 1/0 values, I don't think this is true. At least I don't see any code in the package that would force this. See the following dummy example
> dat_pheno <-
  read.table(
  file = system.file("extdata", "MiDAS_tut_pheno.txt", package = "midasHLA"),
  header = TRUE
  )
> dat_KIR <- readKirCalls(
  file = system.file("extdata", "MiDAS_tut_KIR.txt", package = "midasHLA")
)
> dat_KIR[, 2] <- dat_KIR[, 2] + 5 # here I make it non 0/1
> HLA <- prepareMiDAS(
  kir_calls = dat_KIR,
  colData = dat_pheno,
  experiment = "kir_genes"
)
> HLA_results <- runMiDAS(
  object = HLA_model,
  experiment = "kir_genes",
  correction = "bonferroni",
  exponentiate = TRUE
)
> head(HLA_results)
# A tibble: 6 × 14
  kir.g…¹ p.value p.adj…² estim…³ std.e…⁴ conf.…⁵ conf.…⁶ stati…⁷ Ntotal Ntota…⁸
  <chr>     <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>   <dbl>  <dbl> <formt>
1 KIR3DL1 3.65e-6 5.84e-5   3.43    0.266   2.07    5.91     4.63    853 91.23%
2 KIR2DS4 3.65e-6 5.84e-5   3.43    0.266   2.07    5.91     4.63    853 91.23%
3 KIR2DL3 4.41e-2 7.06e-1   0.628   0.231   0.396   0.983   -2.01    849 90.80%
4 KIR2DS2 8.29e-2 1   e+0   1.26    0.131   0.971   1.62     1.73    455 48.66%
5 KIR2DL2 1.09e-1 1   e+0   1.23    0.131   0.955   1.60     1.60    449 48.02%
6 KIR2DS5 1.14e-1 1   e+0   0.799   0.142   0.605   1.06    -1.58    288 30.80%
# … with 4 more variables: `N(disease=0)` <dbl>,
#   `N(disease=0).percent` <formttbl>, `N(disease=1)` <dbl>,
#   `N(disease=1).percent` <formttbl>, and abbreviated variable names
#   ¹kir.gene, ²p.adjusted, ³estimate, ⁴std.error, ⁵conf.low, ⁶conf.high,
#   ⁷statistic, ⁸Ntotal.percent
# ℹ Use `colnames()` to see all variable names

Going back to the issue you are facing, I think one option you could consider is to summarize your KIR allele data to the gene level, that would allow you to use our standard workflow.
As for the adding new functionality to handle KIR allele calls, this needs a bit more consideration. Could you let me know which software did you use for KIR calling?
@chammer80 do you have any thoughts on KIR analysis at the allele level?

Thank you for your response and looking into this.
I used the following tool to KIR type my Exome date - https://github.com/mourisl/T1K

Hi @Pharmacogenetecist,
We indeed made the decision to only consider presence/absence calls for KIRs, based on the availability of KIR typing tools at that point in time. We've mainly been using Dave Roe's kpi (https://github.com/droeatumn/kpi) for KIR typing, but it requires WGS.
T1k is novel, and while I think it's a great tool and really promising, I'm not sure regarding the validation of the KIR typing data, especially on allele level, since there's not too much reference data available. Plus, KIR/HLA interactions are most established on KIR gene level, but maybe the availability of tools like T1k will change that and require an update of MiDAS at some point.
In any case, to use MiDAS with your data at this point in time, you'd have to modify your KIR typing results to indicate KIR gene presence / absence (1/0).
Hope this helps.

Hi @Pharmacogenetecist, We indeed made the decision to only consider presence/absence calls for KIRs, based on the availability of KIR typing tools at that point in time. We've mainly been using Dave Roe's kpi (https://github.com/droeatumn/kpi) for KIR typing, but it requires WGS. T1k is novel, and while I think it's a great tool and really promising, I'm not sure regarding the validation of the KIR typing data, especially on allele level, since there's not too much reference data available. Plus, KIR/HLA interactions are most established on KIR gene level, but maybe the availability of tools like T1k will change that and require an update of MiDAS at some point. In any case, to use MiDAS with your data at this point in time, you'd have to modify your KIR typing results to indicate KIR gene presence / absence (1/0). Hope this helps.

Thank you appreciate the response.
MiDAS is a great tool!


Detect whether errors are AlreadyVerified

Is your feature request related to a problem? Please describe.
The sync logic needs to be able to programmatically detect whether an error is AlreadyVerified or not, to avoid restart loops.
Describe the solution you'd like
TBD -- @yaahc ?
Describe alternatives you've considered
Currently we check this (as a hack) by string comparison on the formatted error.

Either replace the format comparisons with this
        self.downcast_ref::<VerifyCheckpointError>()
            .map(|e| matches!(e, VerifyCheckpointError::AlreadyVerified { .. }))
            .unwrap_or(false)

or add a helper trait to abstract over this
use zebra_consensus::VerifyCheckpointError;

trait IsAlreadyVerified {
    fn is_already_verified_error(&self) -> bool;
}

impl IsAlreadyVerified for &(dyn std::error::Error + Send + Sync + 'static) {
    fn is_already_verified_error(&self) -> bool {
        self.downcast_ref::<VerifyCheckpointError>()
            .map(|e| matches!(e, VerifyCheckpointError::AlreadyVerified { .. }))
            .unwrap_or(false)
    }
}

Duplicate of #2339


python3Packages.sounddevice: 0.4.7 -> 0.5.1, convert to pyproject, fix cross

Description of changes
One last attempt at (incrementally) fixing some things.
Before this change the build process fails for nix build .#pkgsCross.aarch64-multiplatform.python3Packages.sounddevice, but adding cffi to nativeBuildInputs fixes it.
I've tested this change at runtime as well by cross-compiling a Python env with this package, copying the closure to a Raspberry Pi, and importing the module on the Raspberry Pi. The build machine is x86_64 and binfmt is disabled (checked by trying to run the cross-compiled environment, and I correctly got "cannot execute binary file: Exec format error"). nix path-info -r ./result | grep -v aarch returns no results so it looks clean to me.
@Artturin Last attempt for now - if this is a correct way of fixing it I have some more packages that I can apply similar treatment to.
Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/4620

Rebased on master, added another version bump.

@ofborg build python3Packages.sounddevice

Dunno if it's the correct way to fix cross, python cross is complicated sometimes.


Transfer-Mode has wrong number (Version 1.1.8)

First I need to say, I don't understand, why there are different types of Transfer-Modes, because I could use the Max Energy, I want to transfer and not this modes.
But why has the godmode the 11x from the normal energy and not 10x?

Should be fixed in next update. Caused by machines sending power whilst flux networks was also taking power from the machine.


[BUG] not redirect at home page

Description
if clicking on an home doesn't redirect to the home page as expected, there could be several reasons behind this issue.
Screenshots

Any additional information?
Adding functionality like mouse movement tracking
What browser are you seeing the problem on?
Chrome
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I'm a GSSoC'24-Extd contributor
[X] I'm a Hacktoberfest'24 contributor
[ ] I am willing to work on this issue (optional)

@anish013326 we are showing only the path and nothing else. If the user wants to go to the homepage, they can tap on the logo as well.

Please don't forget to give a star on the repo.

If there's any work or task available, please feel free to assign it to me. I'm ready to assist!

Sure, @anish013326, I will mention you if there is any work. Can you please tell me if you have ever worked with Next.js?


How to save DataFrame into MongoDB using Java API?

I want to know also:)I use mongo-hadoop-core to save MongoDB now

Hi @NiranjanMudhiraj @lizengfa
You can create a MongodbDataFrame, and then, save it indicating the config. This is the source code:
class MongodbDataFrame(dataFrame: DataFrame) extends Serializable {

  /**
   * It allows storing data in Mongodb from some existing SchemaRDD
   * @param config MongoDB configuration object
   * @param batch It indicates whether it has to be saved in batch mode or not.
   */
  def saveToMongodb(config: Config, batch: Boolean): Unit = {
}

I hope it helps


[v7-rc.1] ng test in createApplication=false workspace passes with failed spec

Bug Report or Feature Request (mark with an x)
- [x] bug report -> please search issues before submitting
- [ ] feature request

Command (mark with an x)
- [ ] new
- [ ] build
- [ ] serve
- [x] test
- [ ] e2e
- [x] generate
- [ ] add
- [ ] update
- [ ] lint
- [ ] xi18n
- [ ] run
- [ ] config
- [ ] help
- [ ] version
- [ ] doc

Versions

Angular CLI: 7.0.0-rc.1
Node: 10.11.0
OS: darwin x64
Angular: 7.0.0-rc.0
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.9.0-rc.1
@angular-devkit/build-angular      0.9.0-rc.1
@angular-devkit/build-ng-packagr   0.9.0-rc.1
@angular-devkit/build-optimizer    0.9.0-rc.1
@angular-devkit/build-webpack      0.9.0-rc.1
@angular-devkit/core               7.0.0-rc.1
@angular-devkit/schematics         7.0.0-rc.1
@angular/cli                       7.0.0-rc.1
@ngtools/json-schema               1.1.0
@ngtools/webpack                   7.0.0-rc.1
@schematics/angular                7.0.0-rc.1
@schematics/update                 0.9.0-rc.1
ng-packagr                         4.2.0
rxjs                               6.3.3
typescript                         3.1.1
webpack                            4.19.1

Repro steps

ng new foobar --create-application=false
ng generate lib foobar-lib
Add broken spec

  it('should create', () => {
    expect(null).toBeTruthy();
  });

ng test --no-watch
Passed (bug)
ng test --no-watch --reporters=progress
Failed (correct)

The log given by the failure

> ng test --no-watch
04 10 2018 00:25:46.067:INFO [karma]: Karma v3.0.0 server started at http://<IP_ADDRESS>:9876/
04 10 2018 00:25:46.070:INFO [launcher]: Launching browser Chrome with unlimited concurrency
04 10 2018 00:25:46.074:INFO [launcher]: Starting browser Chrome
04 10 2018 00:25:53.388:INFO [Chrome 69.0.3497 (Mac OS X 10.12.6)]: Connected on socket JYXPPPo6Mw0pHIIfAAAA with id 51502435

No failure.
Desired functionality

wIth --reporters option, it fails properly.
> ng test --no-watch --reporters=progress
04 10 2018 00:28:20.343:INFO [karma]: Karma v3.0.0 server started at http://<IP_ADDRESS>:9876/
04 10 2018 00:28:20.353:INFO [launcher]: Launching browser Chrome with unlimited concurrency
 10% building modules 2/3 modules 1 active ...rojects/test-lib/src sync /\.spec\.ts$/04 10 2018 00:28:20.364:INFO [launcher]: Starting browser Chrome
04 10 2018 00:28:25.694:INFO [Chrome 69.0.3497 (Mac OS X 10.12.6)]: Connected on socket qfBoO8aVAJ31QhNdAAAA with id 5910633
Chrome 69.0.3497 (Mac OS X 10.12.6) TestLibComponent should create FAILED
        Expected null to be truthy.
            at UserContext.<anonymous> (http://localhost:9876/src/lib/test-lib.component.spec.ts?:23:18)
            at ZoneDelegate.push.../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/Users/laco/Works/v7rc-test-example-lib/node_modules/zone.js/dist/zone.js?:388:1)
            at ProxyZoneSpec.push.../../node_modules/zone.js/dist/zone-testing.js.ProxyZoneSpec.onInvoke (http://localhost:9876/Users/laco/Works/v7rc-test-example-lib/node_modules/zone.js/dist/zone-testing.js?:288:1)
            at ZoneDelegate.push.../../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke (http://localhost:9876/Users/laco/Works/v7rc-test-example-lib/node_modules/zone.js/dist/zone.js?:387:1)
Chrome 69.0.3497 (Mac OS X 10.12.6): Executed 2 of 2 (1 FAILED) (0.101 secs / 0.094 secs)
TOTAL: 1 FAILED, 1 SUCCESS

Mention any other details that might be useful

This behavior may relate to #12455 . --reporters option regression affects multiple locations.

Duplicate of #12455


Allow to additionally configure arbitrary command-line options

It would be a significant maintenance burden to keep the set of configurable
attributes up-to-date. So, while providing an easy way to set essential
arguments with dedicated attributes, with the proposed change any available
option implemented by Podman can be utilized.
This change is inspired by Ansible's unarchive module^1, its attribute
'extra_opts' forwards additional options to the underlying CLI,
regardless of implementation of the CLI.

@ssbarnea let me know it there is something I missed to do, or if I can assist to move this forward.


[physac] Jump sticking in physics movement example

Pressing up does not respond immediately (intermittent). Issue goes away when isGrounded check is removed on line 74.

// Vertical movement input checking if player physics body is grounded
if (IsKeyDown(KEY_UP) && body->isGrounded) body->velocity.y = -VELOCITY*4;

I think this issue is related to sync between main game thread and physics thread. Probably @victorfisac, creator of physac.h, can provide further info.

Hi @kewp @raysan5
Yes. I realized about this issue and I couldn't find any solution by the moment. I think too it is related to sync due to physics thread is not limited and maybe the grounded state changes during loops while a physics object is "sleeping" in ground.
Dynamics are all time applying gravity and other forces and solving collisions to avoid colliders overlapping. I just check if any contacts normal is negative in Y axis to simulate grounding of a character.
The physics library I used as reference didn't implement any grounded state so I implemented it as I do in Unity 3D using 2d physics. Maybe I should improve the condition of normal.y value to set grounded state to true...
Any help is welcome!

This is strange. I added a print to the normals at the bottom of SolvePhysicsManifold (line 1347).

// Update physics body grounded state if normal direction is downside
manifold->bodyB->isGrounded = (manifold->normal.y < 0);
if (manifold->bodyB->enabled) printf("%.2f\n",manifold->normal.y);

Instead of just negative ones (when leaving the block on the floor) I'm getting zeros as well, repeating 4x between.
http://oi66.tinypic.com/24l3ofn.jpg
That's strange, right ? Only the block is enabled in the scene.
Doesn't explain the intermittent hopping when holding up, though ...

I reviewed Physac and found the solution!
I was overwriting isGrounded value in each manifold solving. So when player-floor collision sets isGrounded to true, next manifold player-platform (not colliding) was changing isGrounded to false again and obviously manifold->normal.y to 0.0f.
You can check that removing all colliders except floor and player and normal.y will be always -1.0f and player will jump as expected because there isn't any other physics body to overwrite the isGrounded value...
Now isGrounded is reset to false before starting step dynamics and isGrounded value is calculated just when its value is false yet. I'm updating Physac repo and starting a pull request for raylib.

Fixed in pull request #239

Tested on Windows. Works great (no more sticking when jumping).


filtering with formatName

Hi,
I have a domain
class Recipe {
     Ingredient ingredient
}

in my grid I have
			ingredient
			{
				label "ingredient.label"
				formatName 'ingredientFormat'
			}

ingredientFormat = {"${it.name}";}

The idea of the formatter is to make the item clickable to show its detail.
The problem is to make this happen, i need the whole ingredient object and not just the ingredient name.
How can I make the column searchable in this case, using filterClosure to search by name.
Thanks

Did you make this work properly, eventually?


Is "pip install -e pde-superresolution" the right command?

Hi, I'd like to point out that the instruction pip install related to the project might not be right one. Instead, one should type
pip install -e data-driven-discretization-1d
as it searches the setup.py file inside this folder. Am I wrong? At least this was the only way I succeeded installing the package...

In the installation section of the README file we have the -e flag. Where did you see a pip install command without it?

Thanks for pointing this out. Indeed, you are correct: it should be pip install -e data-driven-discretization-1d (which is what we have in our notebooks), not pip install -e pde-superresolution. I fixed this in the README.


fix(nutritionSurvey): use ANDROID_ID device ID

Closes #68.

Six months are passed. Should we discard this?

IIRC, the app uses the format proposed here, so we could merge it for consistencies sake, but it doesn't really matter either way.


"GoJelastic configure" doesn't persists data

If I run
GoJelastic configure --token=xxxxxxxx --url=https://xxxxxxx.xxx

the cli outputs Config file written or updated but the info isn't persisted, whilst creating the config file manuallly in home directory works.
Maybe a rights management thing ?

Thank you for bringing this to our attention.
Investigation: We'll look into the reason why the CLI might not be creating the configuration file as expected. It's possible that there might be a rights management issue, especially if manual file creation in the home directory works without issues.
Workaround: For the time being, you can manually create the gojelastic.env file in your home directory. As you've observed, once the file exists, the CLI should be able to update it.
Enhanced Error Handling: We understand the importance of clear error messages. We will work on improving the error handling around the file creation process to provide more informative feedback when issues like this arise.
Thank you for your patience, and we'll keep you updated as we make progress on this issue.


Add toy problem README with problem details

I added the toy problem from Linan's paper to the gdplib.

The black format check failed. @AlbertLee125

The toy problem is ready to go. I changed the title to david_linan.py and changed the directory to david_linan. The spelling is failing because of the HDA_gdpopt file. Besides the hda file error, the code is ready to go.
Second thoughts: Gomez_linan is also a good name for the toy problem. They are the ones to create the given model. If you both think the title is better written as 'gomez_linan.py', please let me know.

I changed the title and name as Example 1 Problem of Liñán (2023).


Fixed spelling mistakes

Can't this be included in the other PR you sybmitted?

It can. But then it needs to be reviewed.

Please include it in the other PR. It will get in after some polish.


[USMON-384] Use eBPF ring buffers when supported

What does this PR do?
Replace the use of perf maps by ring buffers when supported by the target host (>= 5.8)
Motivation

Better memory management: ring buffers share a unique buffer across all CPUs which can be beneficial for absorbing burst in the context of uneven workloads. In our load test environment we have seen a marginal (10%) reduction in the number of dropped events (caused by failed perf flushes). Having said that, in relative terms our loss rate was already <0.01%, so I wouldn't expect this to have any impact in terms of overall data correctness.

Enable future use of reserve/submit API

Additional Notes

For this PR, we have maintained the total memory allocated for the perf events, but we should now be able to reduce it specially in the context of a high number of CPUs. This will be left as a follow-up PR though.
We also plan to open another follow-up PR for replacing removeRingBufferHelperCalls by the ebpf.Modifier introduced in https://github.com/DataDog/datadog-agent/pull/23158, but we're currently waiting on another PR that deprecates the use of the eBPF telemetry manager.
We're now embedding the CPU number "directly" in the event payload because ring buffer events don't have this information. This requires a new field (cpu) to be added to the batch_events_t type, but the size overhead is negligible (<0.01%)

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge


Expose abstract git plugin as public api.

See original issue on GitLab
In GitLab by [Gitlab user @phildawson] on Mar 13, 2019, 18:48
Background
Multiple BuildStream users are currently maintaining their own customised git plugins to cater to their specific use cases. As this seems to be a reasonably common occurrence we should consider making this easy for users.
We currently have an abstract implementation of a git source plugin in _gitsourcebase.py. We should consider exposing this as part of out public API in order to make it easier for users to customise the git plugin. In reality, users are already deriving from this abstract git plugin, so the question is whether we should 'officially' support this, making the appropriate stability commitments by the time we release 2.0.
Acceptance Criteria
The abstract _GitSourceBase and _GitMirror classes have been included in BuildStream's public api, if we decide this is something we want to do.
//: # (Acceptance criteria should follow the S.M.A.R.T. principle https://en.wikipedia.org/wiki/SMART_criteria )

In GitLab by [Gitlab user @phildawson] on Mar 14, 2019, 10:11
marked this issue as related to #697

In GitLab by [Gitlab user @jjardon] on Mar 17, 2019, 03:56
This looks like a duplicate of #697 ? We open that issue when we had to create out own git plugin modification; see git_tag in bst-external
Also, git plugin will life in a external repo if we follow our plans to put plugins elsewhere
For all of the above, let's close this; let's continue the conversation at #697, where more background about the issue/plans is present

In GitLab by [Gitlab user @jjardon] on Mar 17, 2019, 03:56
closed