[WiP] Comments & Questions

Didn't really know where else to do this, so filing an issue for now.
One question regarding the original paper:

Just to make sure I'm understanding correctly - are they artificially restricting the degree of connectivity for nodes in the first half of the paper? That's the only way I could make sense of the different values for d - otherwise it seems to me it would be dependent upon density of nodes and radius of communication, which they don't seem to consider.

One comment on the flowchart:

It is unclear in some places with "this node" and "that node" are - consider using "sending node", "receiving node", etc.

Code review comments:

In progress (lots of code to read - haven't forgot, I'm just part way through, I'll come back and add to this.

Just to make sure I'm understanding correctly - are they artificially restricting the degree of connectivity for nodes in the first half of the paper

For section 3 of the paper (Partitioning Pattern Analysis) it seems like they are restricting the degree of connectivity of the nodes by varying the number of nodes (based on equation 3 in the paper)

Although they don't mention it, it's the only thing that would make sense to me as they state a fixed area and a fixed communication radius r.

It is unclear in some places with "this node" and "that node" are - consider using "sending node", "receiving node", etc.

Ah I now see what you mean, thats not something that I noticed, Ill be sure to clean that up before I extract snippets to use as figures for the thesis. In almost all cases the node refers to the peer node, and any lists that are mentioned are relating to the current nodes local information.
There are also issues where I have dead end else branches on conditionals that don't go anywhere, I left those out to conserve space and make it less of a mess but @keeferrourke mentioned that it made it confusing and look incomplete.

I mentioned you in #16 with a potential thoughts on the apparent high level of transmission collisions that seem to be happening.

Just to make sure I'm understanding correctly - are they artificially restricting the degree of connectivity for nodes in the first half of the paper

For section 3 of the paper (Partitioning Pattern Analysis) it seems like they are restricting the degree of connectivity of the nodes by varying the number of nodes (based on equation 3 in the paper)

Although they don't mention it, it's the only thing that would make sense to me as they state a fixed area and a fixed communication radius r.

It is unclear in some places with "this node" and "that node" are - consider using "sending node", "receiving node", etc.

Ah I now see what you mean, thats not something that I noticed, Ill be sure to clean that up before I extract snippets to use as figures for the thesis. In almost all cases the node refers to the peer node, and any lists that are mentioned are relating to the current nodes local information.
There are also issues where I have dead end else branches on conditionals that don't go anywhere, I left those out to conserve space and make it less of a mess but @keeferrourke mentioned that it made it confusing and look incomplete.

Yes I noticed that formula too - I'm just saying it's weird because it doesn't capture the dynamics of the mobility model and the topology of the actual connectivity. For instance, suppose you get some weird random seed and all of the nodes are bunched together at the top left of the simulation space. You could have it such that a single node might be in communication range of 90% of the nodes in the simulation, say if you have 100 nodes, you could connect to 90 of them. However with that formula it might restrict the node degree to say 5.
Without having looked at your code much yet, I was wondering if you are capturing this dynamic. Are you artificially restricting the nodes to only connect to a subset of the potential neighbours with this restricted connectivity? If so, how do you select which neighbours to use and which to ignore? Do you take the first d neighbours and ignore the rest?

I am not artificially restricting this, and I do not believe that they did either for the actual experiments. I thought the first part was more "background motivation" to show the partitioning behaviour that is common as a reason to make their algorithm. I don't think it was actually used for the rhpman evaluation.

Yeah was re-reading now, I think it might have just been for analysis of when the degree was greater or less than some critical value

Okay I think I've had a decent read through now - made a bunch of comments / questions. Feel free to take your time, we can have a call this week sometime to talk through any of it you like.

Under assumptions - if the identifier is an ipv4 address, how is the addresses given out? Are you sure there are never ip address conflicts? In a real-world network, typically ad hoc networks use zeroconf and self organize their ip addresses.

I agree, using the ipv4 address is a bad idea for a unique node identifier, using a UUIDv4 would probably make it more robust if this was going to be used for a real system, or tested on an ipv6 network, or under situations where the same ip address could be reused.
However to make this implementation less complex I felt that this limitation was good enough since I am not planning on evaluating the code under those conditions. I am planning on making a note about that assumption in the thesis when I talk about the assumptions and implementation.

https://github.com/MarshallAsch/rhpman/blob/main/examples/simulation-params.cc#L17

Ya I need to fix that, especially since I fo a couple of floating point equality checks, that make it not super clear what is happening.

Also cpp best practice is to use constexpr: https://leanpub.com/cppbestpractices (I can send you a pdf of this book if you're interested)

That would be much appreciated, c++ is not a language I have used at all before starting this, and as you may have noticed a lot of my programming style has been very c like and I have not taken advantage of many of the c++ features / used them incorrectly.

Another best practice - I noticed your enums are not scoped

Interesting I did not know that was a thing, I thought I tried to use the scope for it everywhere, but looking at the diff again it seems I did not.

https://github.com/MarshallAsch/rhpman/blob/main/examples/simulation-params.cc#L100

ah that particular one should have been removed it is not longer usable after I changed the energy model to li-ion batteries.

https://github.com/MarshallAsch/rhpman/blob/main/examples/simulation-params.cc#L96

does not really have a unit, but I shall go through the list of parameters for the cli flags and make sure that all of the relevant units and allowable ranges get listed

I'm not sure the sim time matches the original experiment:

That observation is correct, some of the parameters have been altered for testing purposes so when I do short runs I dont have to wait a long time / pass all the flags, but the time is specified in the simulation runner script that it seems that I have not actually shared with you yet (it is largely still a work in progress).

What happens if lower isn't distance or time https://github.com/MarshallAsch/rhpman/blob/main/examples/nsutil.cc#L62

Very good question, I have not looked through Keefers setup code all that closely, its Keefer so I just kinda trusted it made sense, I should check over it though, thanks for pointing that out.

You may want to note that the weights must sum to 1: https://github.com/MarshallAsch/rhpman/blob/main/examples/simulation-params.cc#L94 - I also didn't see a check for this either. I don't think it makes sense for the sum of the weights to be > 1 does it?

I do check that it adds to up 1 here: (or at least thats what the intention of this block is, yes I see why unit tests would help here)
https://github.com/MarshallAsch/rhpman/blob/f939b4c1a05861b832307b7289b5294b775d8529/examples/simulation-params.cc#L287

I'm not sure the colocation is being calculated correctly...

While I agree that based on the line "Instead, 𝑈col,𝑖𝑗 summarizes the history of colocation of 𝑖 with receivers of data 𝑗 (in the 𝑖’s disseminating zone). " I am not calculating the value correctly,  and based on the name of the field I would have thought that it would make more sense to keep track of historical connections with the replication nodes. Later in that section however it says:
"The computation of 𝑈col,𝑖𝑗 is much simpler: 𝑈col,𝑖𝑗 = 1 if a 𝑗’s receiver is in the 𝑖’s disseminating zone, and 𝑈col,𝑖𝑗 = 0, otherwise."
So that is what I used for the calculation, and I think what I did matches that description of the variable.

I also think the degree of connectivity computation is incorrect

Interesting take on the difference between what they said they did (difference in the sets) and the intention, number of connections and disconnections. Do you think I should be following their intention instead of the equation that they gave? This comes up other times in my implementation as well, where the intention of what the authors are tring to do does not seem to quite match up with how they said it was done. I figured that I should be going based off of what they say they did rather than what I think they intend to be doing as much as possible.

In cpp I'd recommend to avoid raw pointers

I have seen things that mentioned to stay away from c style pointers and mallocing things. I need to look into why and how the smart pointers work.

Instead of using a vector and then iterating through it looking for an ID associated with the entry

Yup I thought about that just after I implemented it, that using a vector is a very inefficient way of doing that.
Good thing I wrapped the vectors behaviour so the interface doesnt have to change to convert it to a map :)

nit: CheckDuplicateMessage

Im not quite sure what your talking about here, the message IDs that Im using are a statically auto incremented, I am aware that this not a viable real way to generate these IDs and if I were implementing this for real I would probably using a UUIDv4 or a UUIDv5.
The purpose of the check duplicate message function is to prevent reprocessing the same message if it has arrived at the same node through multiple routes.

What's the threading situation re: table

I have not implementing anything to be thread safe. My understanding of how ns3 works is that the entire simulation is run in a single thread so it is not something I have thought about for this implementation.

When running repetitions, how is the initial seed set, how are subsequent seeds set

For the simulations I have hardcoded the seed to be 7 for all simulations, and I am making use of the RndRun built in cli flag to configure the sub stream to use for the independant replications as per the ns-3 docs here https://www.nsnam.org/docs/manual/html/random-variables.html#id1
which can support this with a single seed value.
- 7.8 x 10 ^ 22 numbers
- 1.9 x 10 ^ 19 random variables
- 2.3 x 10 ^ 15 replications
The actual value for RngRun is configured by SEM based on the parameter combinations that are specified and the number of replications that it is told to run.

Are there scripts for generating figures in this repo as well?

As of commit 6f50026 the SEM script to run the simulations and plot some of the results is included within the repo. (note it probably will end up being moved elsewhere)

Comments re: tests, setup small examples

Do you have any suggestions on how one might go about doing that?
I also have previously mentioned that I wanted to write unit tests for my code (because as we all know TDD is a fantastic way to write code to ensure that things do what they are supposed to do). But there are no unit tests. I didnt end up writing any since the ns3 test harness seemed to say every single module was crashing, it turns out my saf module is broken and causes every single test harness to fail.
Now that I know that, I can write tests that will actually pass (or fail) instead of just crashing no matter what. I believe that will also help show that the code does function as intended (at least in small sections)

Just taking a quick browse of the responses prior to call - looks like most of the questions / suggestions you've either already thought about, or I have an outdated understanding of ns3 (ie: the seed values and such), or didn't notice some additional explanation in the original paper.
I'd say if you still get weird results, try the other way of computing the connectivity as one more thing to try. Most of the rest of my comments are suggestions. I think moving to smart pointers and getting away from the malloc / free / delete stuff will definitely help with that random segfault you were having.
I'll send you an email with that book.
Also, for the tests - check out gtest. On the call I can show you some examples of tests we use with it. You can mock bits out which may make it easier. The test I mentioned as an example is probably more of an integration test because it will need many parts of the system working together - but it could be good to try to write something like that which currently fails as an exercise to see how you might need to change the code, with the eventual goal of making it pass. In the meantime you can also build up unit tests on small pieces and it may help get towards that goal. I think the biggest difficulty you may still have is being confident the simulation is doing what you think it is. The more you can convince yourself of that, the stronger the results and your defense will be.

Further follow up now that Im actually fixing some of the things:

What happens if lower isn't distance or time
This will return result.second = false; which will cause the parameter parsing to fail and the simulation to abort before it starts.
 std::tie(travellerWalkMode, ok) = getWalkMode(optTravellerWalkMode);
the value ok is set to false if any parameter would result in an invalid configuration.

https://github.com/MarshallAsch/rhpman/blob/main/examples/simulation-params.cc#L17 - needs documentation on what it is. Also cpp best practice is to use constexpr

It seems that using fabs() is not allowed in a constexp as an alternative  the following will be turned into a function to make it more readable.
bool isEqual(double a, double b) {
	return fabs(b - a) < 0.0001;
}

I noticed your enums are not scoped

I converted the ones I could, there is one left that I did not convert because it seems that the scoped enum version does not play nicely with the ns3 EnumValue class.


⚠ Bofrost.lu has degraded performance

In 04ef196, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 933 ms

Resolved: Bofrost.lu performance has improved in bb1c667 after 6 minutes.


Support many BLE connections

Is there a dongle that can support more than 14 active BLE connections, or if not, can we combine multiple dongles to achieve that? I have read the issue #218 that we can do that by setting different environment in Linux, but I would prefer if anything exists in windows

I'd love to hear about bluetooth devices that support more connections. There seems to be no definitive list of information for this. :(


keybase:// url scheme does not support electron path-to-app invocation

The feature introduced in #18555 does not function in my Arch Linux package for keybase-gui, because keybase is not invoked via a renamed electron binary running the default app in resources/app/ -- instead, it is invoked via an electron binary in /usr/bin/electron /path/to/app
$ /usr/bin/electron
Electron 6.0.1 - Build cross platform desktop apps with JavaScript, HTML, and CSS
Usage: electron [options] [path]

A path to an Electron app may be specified. It must be one of the following:
  - index.js file.
  - Folder containing a package.json file.
  - Folder containing an index.js file.
  - .html/.htm file.
  - http://, https://, or file:// URL.

(and in the GUI)

To run a local app, execute the following on the command line:
/usr/lib/electron/electron path-to-app

This is generally useful functionality, and in my case, it's used to ensure that all electron apps use the same runtime, with the system ffmpeg/icu/http_parser/libevent/fontconfig/etc/more/things, and built using the distro-approved clang and relevant CFLAGS.
However, keybase seems to be looking for command-line options exclusively in argv1 (which is, in the case of electron path-to-app, going to be "path-to-app") and not seeing the keybase:// url at all. It would be nice to support this use case.

For context, this is probably caused by the parsing done here:
https://github.com/keybase/client/blob/8283633e9626ae34a29792b0f6695e507702de8a/shared/desktop/app/node.desktop.tsx#L75-L81
https://github.com/keybase/client/blob/8283633e9626ae34a29792b0f6695e507702de8a/shared/desktop/app/node.desktop.tsx#L164-L166

Merged. Do you need us to do anything else or will you cherry pick for this release?

I'm fine with cherry-picking it. Thanks!


Add output_scores option and fix issue with _clean_param_dtypes. ref #101

This pull request:

Fixes an issue where if param['use_pretrained_model'] was evaluated before the data type had been cleaned. As param['use_pretrained_model'] was a string, both 'True' and 'False' evaluated to True.
Adds an output_scores argument which allows scores to be appended to the output data files (ref #101).

Thanks!


Sass !default flags are not recognized

At least I don't think so. They're getting a .token.statement class, which seems generic to me. !default has a special meaning in Sass, and is used like !important, as documented here.
/cc @themightychris

I closed this issue by adding a alias. I know there is still a naming problem... but it's not specific to SCSS. Prism has a general naming problem that would need to be fixed at some point.
For now, those flags are highlighted as keywords. And indeed, they are keywords.


Support for Shortcut Methods to Minimize Network Requests

Active Resource wants to give one the feeling of working with a Active Record model. Unfortunately  Active Record's DB connection is just a network hop away (I hope!). Usually not the case with HTTP-based APIs.
Currently if one wants a collection's products, a product's variants, or other things, and they have the IDs of these top-level resources, they have to make an extra network call:
ShopifyAPI::Collection.find(x).products
ShopifyAPI::Product.find(x).variants

In addition, these requests are being rate limited, so every call counts ☎
Why not support calls like this:
ShopifyAPI::Collection.products(collection_id)
ShopifyAPI::Product.variants(product_id)

❓
The foundation is there:
class Collection
  def self.products(collection_id)
    ShopifyAPI::Product.all(
      :from => "#{ShopifyAPI::Product.prefix}collections/#{collection_id}/products.json"
    )
  end
end

💪

The API actually already supports that kind of request, since ActiveResource supports parameterized queries. In the example you gave, one could leverage the collection_id parameter from https://shopify.dev/docs/admin-api/rest/reference/products/product#index-2020-07, like so:
ShopifyAPI::Product.find(:all, :params => { :collection_id => <id> })

This request would return that collection's products (including their variants!). Plus, you'd also be able to apply any other relevant filters in that same call.
While this is slightly less intuitive than your suggestion, it's a lot more flexible because it supports any number of parameters, and achieves the same end result of getting the list of products in a single request.

In the collection case yes, it's similar but we just got lucky.
In the variant case, how does one juyst select the variant ids and skus for the given product id?
Order's Risks. Given an order id, how do I get its Risks?
Surely there are others.

I realized I pointed out the wrong docs link in my previous response, my apologies. The way ActiveResource works is that it takes the params argument and uses it to build the nested resource URL.
Looking at Order Risks, if we take this:
ShopifyAPI::OrderRisk.find(:all, :params => { :order_id => 1234 })

And look at the URL that it actually amounts to:
ShopifyAPI::OrderRisk.collection_path(:order_id => 1234)
# "/admin/api/2020-07/orders/1234/risks.json"

What we're actually hitting is the /orders/<id>/risks endpoint as desired. So while the shortcut methods would indeed be 'prettier', ActiveResource already supports doing what you're suggesting out of the box.
This can also be seen in the last example in the ActiveResource docs (StreetAddress), at https://api.rubyonrails.org/v3.2.6/classes/ActiveResource/Base.html#method-c-find.
I think because of this, implementing the shorthand methods as part of the API code would add a bit of unnecessary clutter to the resources, but developers can still implement these wrappers at the application level if they want to. What do you think?

I would also suggest, if you are looking to use your network requests in the most efficient manner then it would be best to look into crafting graphql queries instead. This is precisely the problem that graphql was created for. A REST endpoint (which activeresource is meant to adapt to) is not a query layer so we cannot possibly support all associated objects on every resource we have a REST endpoint for. GraphQL would solve this and be able to only grab the data that you specifically need along with only the fields that you need. This is especially ideal with things like orders that can get enormous.

What we're actually hitting is the /orders//risks endpoint as desired. So while the shortcut methods would indeed be 'prettier', ActiveResource already supports doing what you're suggesting out of the box.

Great thanks. The prior example wasn't 100% but I see what you mean 💪

I would also suggest, if you are looking to use your network requests in the most efficient manner then it would be best to look into crafting graphql queries instead.

Heh thanks but I would classify GQL development generally as the opposite of efficient and in the case of products I'll have to add pagination to handle the variants 👎


typescript gets included in node_modules

In yarn.lock, no package has typescript as a dependency
In package.json it's under devDependencies
In serverless.yml I have excludeDevDependencies: true

Yet for some reason when I run sls package, it's included under node_modules/typescript (and it's 60MB large!)
Tried with versions:

1.1.9
1.2.0
2.0.0

@serg06 Are you stating that you have typescript listed in service devDependencies, yet it gets packaged for lambda (even though exclusion of dev dependencies is applied) ?

@medikoo Yes exactly.

@serg06 will it happen also if you run sls package but with no plugins section in serverless.yml (I know it will create not working artifact, but I want to confirm whether any plugin influences that)

@medikoo I can confirm that typescript is still included in the package, with excludeDevDependencies: true, using serverless ^3.15. No extra plugin.

Is there any solution to this?

IIRC I fixed it by adding this to serverless.yaml:
package:
  patterns:
    - '!node_modules/typescript/**'

Does that work? @gualopezb

Yes, it does the trick. I was just wondering if this is indeed an issue with the serverless-plugin-typescript module and, if so, is it going to be fixed in a future version?


vim: 8.1.1234 -> 8.1.1467 [security]

Motivation for this change
fixes a security issue (details: https://github.com/numirias/security/blob/master/doc/2019-06-04_ace-vim-neovim.md)
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Assured whether relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

Why not update all the way through to v1.8.1467?

Intended to use this as s stepping point for backporting into release-19.03, but the patch already seems to be included there.
So may as well skip it. I'll update the PR.

@fpletz No backport to 19.03 needed, the patch is already included there (https://github.com/NixOS/nixpkgs/commit/43264b1a744dc1270e12f1e695a39772c9a61945)

FYI the patched VIM is already in staging: #62590 (r-ryantm automatically targets bumps against staging with >100 rebuilds).
If this patch is security relevant we could also cherry-pick the bump from staging to master, right?

Right, picked in a6549852e; 19.03 has https://github.com/NixOS/nixpkgs/pull/62713 and e95bbcf.  Feel free to do further updates, etc.

Actually, that will be better in a separate PR, as the discussion here is focused on that vulnerability.


Pattern: Leadspace block Design QA testing

User Story

As a [user role below]:
DDS Designer and Developer

I need to:
test the Leadspace block

so that I can:
be sure the developer's code correctly works as designed

Additional Information

Design specs issue (# 2034 )
Functional specs issue (#1835  )
Design and functional specs Box link
Prod QA testing issue (#2266 )

Tasks
Ensure the Leadspace block pattern has been tested and reviewed by design + dev.
Acceptance criteria

[ ] Pattern is reviewed by designer and design defects are identified
[ ] New issues are opened to log individual defects
[ ] Screenshots of as-is and to-be design should be added to the issue when needed
[ ] Developer associated with building the pattern is assigned to the new issues
[ ] Appropriate labels are added to the issue  eg.  bug, dev

@greeshmareddyg Could you provide the storybook link for the Design QA tester?  Thanks.

@RobertaJHahn Here it is, https://ibmdotcom-react-experimental.mybluemix.net/?path=/story/patterns-blocks-leadspaceblock--default

@RobertaJHahn Design QA is now complete for this pattern. I have logged the following issues:
https://github.com/carbon-design-system/ibm-dotcom-library/issues/2613
https://github.com/carbon-design-system/ibm-dotcom-library/issues/2614
https://github.com/carbon-design-system/ibm-dotcom-library/issues/2615
https://github.com/carbon-design-system/ibm-dotcom-library/issues/2616
https://github.com/carbon-design-system/ibm-dotcom-library/issues/2617
https://github.com/carbon-design-system/ibm-dotcom-library/issues/2618
https://github.com/carbon-design-system/ibm-dotcom-library/issues/2619


Graceful exit for growth and neutrinos

Make CCL exit gracefully if the growth function is called for cosmologies with massive neutrinos.

Implemented in function ccl_background.c function ccl_cosmology_compute_growth.


Consider backporting curl bugfix from upstream

See https://github.com/dtolnay/rust-toolchain/pull/94 for context.

But see also https://github.com/dtolnay/rust-toolchain/issues/95 for a possible caveat.

I have seen those commits but they do not seem like a clear win. Maybe these tweaks could be mentioned in the readme for those running into the problem more often.

This doesn't seem necessary to implement anymore.


Serves images with low resolution

https://pagespeed.web.dev/analysis/https-issue-62--ororafresh--hlxsites-hlx-live/uig7eff7z3?form_factor=mobile

This is due to nav logo image (original image) being too low resolution. Tested by adding another (higher resolution) image and it fixed the issue.
Needs to produce a new, higher resolution, image

fixed by increasing size/resolution of original image uploaded in the document

closing


(IMAGES-1139) rename windows fips

Rename windows2012r2fips to windowsfips2012r2 to
be compliant with puppet-agent platform naming

testing was failing due to an unrelated issue that we hopefully resolved in #167.
@puppetlabs-jenkins retest this please

👍


User can limit number of comments displayed on page

Primary Reviewer: Sam
Secondary Reviewer: Derrill

Addressed changes in latest commits.


Correctly report sampling header

Goal
Correctly report the Bugsnag-Span-Sampling header
This required a lot of changes as the current delivery system didn't have enough information to calculate the header
To fix this, I've introduced a new TracePayload type that contains both a body and headers:
interface TracePayload {
  body: DeliveryPayload
  headers: {
    'Bugsnag-Api-Key': string
    'Content-Type': 'application/json'
    'Bugsnag-Span-Sampling': string
    // we don't add 'Bugsnag-Sent-At' in the TracePayloadEncoder so that retried
    // payloads get a new value each time delivery is attempted
    // therefore it's 'undefined' when passed to delivery, which adds a value
    // immediately before initiating the request
    'Bugsnag-Sent-At'?: string
  }
}

This is created by a new TracePayloadEncoder, which takes an array of SpanEnded and returns a TracePayload
The BatchProcessor then uses the TracePayloadEncoder to construct the payload before passing it to the delivery system
I originally intended for delivery to do the payload encoding, but this causes a lot of issues (mainly in our tests):

many of our tests rely on asserting against delivery payloads
the TracePayloadEncoder requires a configuration, clock & resource attribute source to construct the payload. Adding this to every place we use InMemoryDelivery is very awkward
it's arguably better for encoding to be done in core before being passed to delivery; otherwise every platform's delivery needs to repeat the encoding step

@yousif-bugsnag  think the code coverage bot needs a little work - these should probably be green pips?


Job annotations

Update scale_jobs.go
Update CHANGELOG.md

add annotations from scaledjob spec to job spec
add new improvement to changelog
Relates to https://github.com/kedacore/keda/issues/4594

looking good! Could you add a unit test to validate the annotations? Please, update docs as well pray

would be happy to add tests.
Can you help me understand where I should add them?

Can you help me understand where I should add them?

You can use this test as example: https://github.com/kedacore/keda/blob/main/pkg/scaling/executor/scale_jobs_test.go#L202-L214
I'd add a test case calling to scaleExecutor.createJobs and checking the generated job

Can you help me understand where I should add them?

You can use this test as example: https://github.com/kedacore/keda/blob/main/pkg/scaling/executor/scale_jobs_test.go#L202-L214 I'd add a test case calling to scaleExecutor.createJobs and checking the generated job

those are all using mocks to simulate the scaling decision.
I am happy to add a new test to an existing framework, but I don't think this is the write scope to generate a whole new test framework.
If there is already an existing test framework which will generate a new job from a scaled job, please share where i can find it.

I am happy to add a new test to an existing framework, but I don't think this is the correct scope to generate a whole new test framework.

You don't need to generate the whole tests framework. There are other tests (I didn't link the correct one, sorry) that mock the client to test only the executor: https://github.com/kedacore/keda/blob/main/pkg/scaling/executor/scale_jobs_test.go#L216-L287
You could do something similar, calling the client mock with an empty slice, implementing the Create function mock which just adds the new job to the slice, and checking the slice elements at the end of the call:

Implement the mock function for client.Create, storing the new created jobs in the slice that the mock receives during the creation
Add a test which starts the mock with an empty array and generate the scalerExecutor.
Call to scaleExecutor.createJobs with the needed info
After the end of the call, check the slice and evaluate if the job/jobs contain the annotations that you added in the ScaledJob

With this, you could check your code and you don't need to create the whole test framework, just adding the required mock functions is enough IMO

Implemented in: https://github.com/kedacore/keda/pull/5106


Added updateSketchCondition as a Draw Interaction option

[ ] This pull request addresses an issue that has been marked with the 'Pull request accepted' label & I have added the link to that issue.
[x] It contains one or more small, incremental, logically separate commits, with no merge commits.
[x] I have used clear commit messages.
[ ] Existing tests pass for me locally & I have added or updated tests for new or changed functionality.
[ ] The work herein is covered by a valid Contributor License Agreement (CLA).

Replaces #4668. Trivial addition but should be unit tested, I realize now due to the nice reminders in the new PR template.

This PR is a suggested fix for the issue https://github.com/openlayers/openlayers/issues/3907.

I'm not sure CLA was established for @daanoz. However, the changes are quite trivial.

Good point. @daanoz, can you please sign a CLA? Thanks!

Hi, thx for the interest in closing this PR. Since I've submitted this PR (and it's fix) as part of an enterprise application, I also rather get the CLA signed by the enterprise rather than me personally signing it. But, that has proven to be quite the challenge, the related ticket has been on our own scrumboard for over an year now, so I can imagine the pain with having this ticket open for so long. Therefore I propose to just close this ticket and the branch, and see if someone else is willing to pick it up, otherwise we're stuck in this deadlock?

I would like to pick it up and start from scratch, but it will likely result in mostly identical implementation - not sure if that's ok or not. Also, I've tried to make unit tests but got stuck on the event simulation, so I'll need some more time on it. Not expecting to get get it done until after 4.6 and so will close this.


Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s": context deadline exceeded

Im trying to install cert-certificates in an fresh k8s cluster machine
Steps:
helm repo add jetstack https://charts.jetstack.io
helm repo update
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.8.0/cert-manager.crds.yaml
helm install \
  cert-manager jetstack/cert-manager \
  --namespace cert-manager \
  --create-namespace \
  --version v1.8.0 \
  --set installCRDs=true

and then I got this issue
Error from server (InternalError): error when creating "test-resources.yaml": Internal error occurred: failed calling webhook "webhook.cert-manager.io": Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s": context deadline exceeded

The pods.service and endpoint seems to look ok
# kubectl get svc,pods,endpoints -n cert-manager
NAME                           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
service/cert-manager           ClusterIP   <...>    <none>        9402/TCP   12m
service/cert-manager-webhook   ClusterIP   <...>   <none>        443/TCP    12m

NAME                                          READY   STATUS    RESTARTS   AGE
pod/cert-manager-6bbf595697-4z855             1/1     Running   0          12m
pod/cert-manager-cainjector-6bc9d758b-gg48g   1/1     Running   0          12m
pod/cert-manager-webhook-d98678bf5-wp7t9      1/1     Running   0          12m

NAME                             ENDPOINTS             AGE
endpoints/cert-manager           <...>     12m
endpoints/cert-manager-webhook   <...>   12m

can someone help to understand why am I getting this issue? Im running those command on Linux

Usually this is because the webhook is not reachable from Kubernetes apiserver for some reason (i.e a networking issue)
We have some debug docs here https://cert-manager.io/docs/concepts/webhook/#known-problems-and-solutions

@klepiz are you on AKS? I experience this on AKS but not in GKE for example.

no, my nodes are in bare metal so Im not using cloud

@klepiz hi,have you solved this problem?
I'm facing the same issue in bare metal with k3s cluster.

kind of, I run this as workaround
kubectl delete validatingwebhookconfiguration validating-webhook-configuration
kubectl delete mutatingwebhookconfiguration mutating-webhook-configuration

@klepiz yes, it works.
@irbekrm there should have an official solution for this case，maybe this is a kind of bug?

kubectl delete validatingwebhookconfiguration validating-webhook-configuration
kubectl delete mutatingwebhookconfiguration mutating-webhook-configuration

You should never do this as that way you will lose resource validation and mutation.

Just wanted to add that I've got the same issues with some of my clusters on prem and cloud with k3s. I've attempted to extend the mutate/validate webhooks to a 30s timeout( max allowed by kubernetes) and remove an extra clusterIssuer but the events still persist. Currently both are leveraging Flannel CNI's.

Civo cloud k3s cluster (ver 1.22.11)
pi4 8GB cluster (ver 1.24.3)

Also getting this issue. Fresh cluster deployed. I'm using MetalLB for the networking. It's a bare metal setup.
helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace cert-manager
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.9.1/cert-manager.yaml
kubectl apply -f ./issuer/ingress-controller-service.yml
kubectl apply -f ./issuer/cert.yml

Errors when applying cert.yml.
Contents:
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: XXX.YYY-tls
  namespace: cert-manager
spec:
  secretName: XXX.YYY-tls-cert
  duration: 48h
  renewBefore: 24h
  commonName: XXX.YYY
  dnsNames:
  - XXX.YYY
  issuerRef:
    name: letsencrypt-prod
    kind: Issuer

Debugging:
$ kbc version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:45:37Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.13", GitCommit:"a43c0904d0de10f92aa3956c74489c45e6453d6e", GitTreeState:"clean", BuildDate:"2022-08-17T18:23:45Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}
$ kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:44:22Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"linux/amd64"}

$ kbc get pods -n cert-manager -o wide
NAME                                                   READY   STATUS    RESTARTS   AGE    IP             NODE      NOMINATED NODE   READINESS GATES
cert-manager-55649d64b4-jnmgm                          1/1     Running   0          24m    <IP_ADDRESS>    k-w-002   <none>           <none>
cert-manager-cainjector-666db4777-56c8s                1/1     Running   0          24m    <IP_ADDRESS>   k-w-003   <none>           <none>
cert-manager-webhook-6466bc8f4-25v22                   1/1     Running   0          12m    <IP_ADDRESS>    k-w-001   <none>           <none>
ingress-nginx-controller-55dcf56b68-vs7bn              1/1     Running   0          7m9s   <IP_ADDRESS>   k-w-003   <none>           <none>
quickstart-ingress-nginx-controller-54f6f89679-nr995   1/1     Running   0          21m    <IP_ADDRESS>   k-w-003   <none>           <none>

$ kbc get svc -n cert-manager -o wide
NAME                                            TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE     SELECTOR
cert-manager                                    ClusterIP      <IP_ADDRESS>    <none>        9402/TCP                     3h16m   app.kubernetes.io/component=controller,app.kubernetes.io/instance=cert-manager,app.kubernetes.io/name=cert-manager
cert-manager-webhook                            ClusterIP      <IP_ADDRESS>    <none>        443/TCP                      3h16m   app.kubernetes.io/component=webhook,app.kubernetes.io/instance=cert-manager,app.kubernetes.io/name=webhook
ingress-nginx-controller                        LoadBalancer   <IP_ADDRESS>   <IP_ADDRESS>     80:31066/TCP,443:32011/TCP   6m54s   app.kubernetes.io/component=controller,app.kubernetes.io/instance=ingress-nginx,app.kubernetes.io/name=ingress-nginx
ingress-nginx-controller-admission              ClusterIP      <IP_ADDRESS>   <none>        443/TCP                      6m54s   app.kubernetes.io/component=controller,app.kubernetes.io/instance=ingress-nginx,app.kubernetes.io/name=ingress-nginx
quickstart-ingress-nginx-controller             LoadBalancer   <IP_ADDRESS>    <IP_ADDRESS>     80:30817/TCP,443:31464/TCP   22m     app.kubernetes.io/component=controller,app.kubernetes.io/instance=quickstart,app.kubernetes.io/name=ingress-nginx
quickstart-ingress-nginx-controller-admission   ClusterIP      <IP_ADDRESS>    <none>        443/TCP                      22m     app.kubernetes.io/component=controller,app.kubernetes.io/instance=quickstart,app.kubernetes.io/name=ingress-nginx

$ kbc get ValidatingWebhookConfiguration -n cert-manager
NAME                                 WEBHOOKS   AGE
cert-manager-webhook                 1          3h19m
ingress-nginx-admission              1          9m22s
quickstart-ingress-nginx-admission   1          24m

$ kbc describe pod cert-manager-webhook-6466bc8f4-25v22 -n cert-manager
Name:         cert-manager-webhook-6466bc8f4-25v22
Namespace:    cert-manager
Priority:     0
Node:         k-w-001/<IP_ADDRESS>
Start Time:   Wed, 31 Aug 2022 05:59:43 +0000
Labels:       app=webhook
              app.kubernetes.io/component=webhook
              app.kubernetes.io/instance=cert-manager
              app.kubernetes.io/name=webhook
              app.kubernetes.io/version=v1.9.1
              pod-template-hash=6466bc8f4
Annotations:  <none>
Status:       Running
IP:           <IP_ADDRESS>
IPs:
  IP:           <IP_ADDRESS>
Controlled By:  ReplicaSet/cert-manager-webhook-6466bc8f4
Containers:
  cert-manager:
    Container ID:  docker://1200df958d74e3d4b398be1e6ed0992b7d3660e8b4710b1f498ac324489013fe
    Image:         quay.io/jetstack/cert-manager-webhook:v1.9.1
    Image ID:      docker-pullable://quay.io/jetstack/cert-manager-webhook@sha256:4ab2982a220e1c719473d52d8463508422ab26e92664732bfc4d96b538af6b8a
    Port:          10250/TCP
    Host Port:     0/TCP
    Args:
      --v=2
      --secure-port=10250
      --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
      --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
      --dynamic-serving-dns-names=cert-manager-webhook,cert-manager-webhook.cert-manager,cert-manager-webhook.cert-manager.svc
    State:          Running
      Started:      Wed, 31 Aug 2022 05:59:47 +0000
    Ready:          True
    Restart Count:  0
    Liveness:       http-get http://:6080/livez delay=60s timeout=1s period=10s #success=1 #failure=3
    Readiness:      http-get http://:6080/healthz delay=5s timeout=1s period=5s #success=1 #failure=3
    Environment:
      POD_NAMESPACE:  cert-manager (v1:metadata.namespace)
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-xfvn8 (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             True
  ContainersReady   True
  PodScheduled      True
Volumes:
  kube-api-access-xfvn8:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              kubernetes.io/os=linux
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  15m   default-scheduler  Successfully assigned cert-manager/cert-manager-webhook-6466bc8f4-25v22 to k-w-001
  Normal  Pulling    15m   kubelet            Pulling image "quay.io/jetstack/cert-manager-webhook:v1.9.1"
  Normal  Pulled     15m   kubelet            Successfully pulled image "quay.io/jetstack/cert-manager-webhook:v1.9.1" in 3.151900949s
  Normal  Created    15m   kubelet            Created container cert-manager
  Normal  Started    15m   kubelet            Started container cert-manager

I'm running k3s cluster on gcp vm's and faced with same issue. Moreover no one  of installed validation webhooks are working as well, except cases where validation pods are running with network=host privileges

kind of, I run this as workaround
kubectl delete validatingwebhookconfiguration validating-webhook-configuration
kubectl delete mutatingwebhookconfiguration mutating-webhook-configuration

that's the only thing that helped after 15 retries, tnx :)

kind of, I run this as workaround
kubectl delete validatingwebhookconfiguration validating-webhook-configuration
kubectl delete mutatingwebhookconfiguration mutating-webhook-configuration

Can confirm it works. Seeing as how there is no official solution otherwise it is sad that this stands as the way to "fix" the issue.

I did some testing. It seems that when I remove metallb from my kubespray config that I don't seem to get the context deadline exceeded error anymore.
I suspect this is mostly due to kubespray dictating (and metallb needing) kube_proxy_strict_arp set to true. After deploying cert-manager (via static manifests on docs site) I was able to use the manifests here - https://cert-manager.io/docs/installation/verify/#manual-verification to get a cert created without issue.
From there, I was able to modify the kube proxy configmap to do strict_arp, then install metallb, and then advertise a L2 pool. A service set to LoadBalancer was able to obtain an IP and route just fine.
I then deleted the cert test resources, verified, then recreated them without issue. To test further, I deleted those and then the cert-manager static manifests and tried to reinstall cert-manager. This is where I ran into issues. It was able to recreate all resources and the pods did come up but this error presents in the webhook pod-
namespace/cert-manager-test created
Error from server (InternalError): error when creating "2test.yml": Internal error occurred: failed calling webhook "webhook.cert-manager.io": failed to call webhook: Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s": x509: certificate signed by unknown authority
Error from server (InternalError): error when creating "2test.yml": Internal error occurred: failed calling webhook "webhook.cert-manager.io": failed to call webhook: Post "https://cert-manager-webhook.cert-manager.svc:443/mutate?timeout=10s": x509: certificate signed by unknown authority

This error persists even when reverting all metallb installtion and deleting and recreating all cert-manager infra.
So from my limited testing, it appears that it might work fine if you install in order of

cluster
cert-manager
metallb

But I'm not sure if it will break as soon as the webhook pod restarts or after some period of time. I will guess that it would break upon any cert-manager upgrade.

Going further, I think I have found something that works that I would appreciate a dev's input on (if it truly works, if it will be stable for the long haul, etc.)
For kubespray (and calico, metallb) users, I think this should work from my limited testing.

Create your cluster specifying kube_proxy_strict_arp: true in your k8s-clusters vars and adding metallb in your addons.yml (assuming you want it.)
Download the static manifests here- https://github.com/cert-manager/cert-manager/releases/download/v1.10.0/cert-manager.yaml
Edit them with whatever editor to reflect 3 changes
cert-manager-webhook deployment- change 10250 to some other port- 13250 if you please (and follows for this example.) - This needs done TWICE here- once to specify the command and then an update to the port
cert-manager-webhook service- change 10250 to 13250. This should work with "https" but I changed it anyhow.
Deploy the manifests with kubectl apply -f

I still get handshake errors in the webhook pod logs but unsure if that is an issue or not, Maybe?
This "solution" if it is one was drawn up using some notes from the following link (cause 2, cause 3.)
https://cert-manager.io/docs/troubleshooting/webhook/#error-io-timeout-connectivity-issue

(cert-manager v1.9.0 via Helm Chart)
I had the same problem and it solved it by following, hope it helps any future readers
1.  Also deleted all cert-manager related CRDs (Not sure if this was necessary but Certificates come up by itself once cert-manager works properly anyway)
kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.0/cert-manager.crds.yaml

3. Update Chart
helm repo add jetstack https://charts.jetstack.io
helm repo update

4. Install Chart with below config (Set host network true to make webhook pod run in the host's network namespace & Set securePort to 10260 to prevent a conflict between the webhook and the kubelet)
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.9.0 --set startupapicheck.timeout=5m --set installCRDs=true --set webhook.hostNetwork=true --set webhook.securePort=10260

Reference: https://cert-manager.io/docs/troubleshooting/webhook/#io-timeout

(cert-manager v1.9.0 via Helm Chart)
I had the same problem and it solved it by following, hope it helps any future readers
1.  Also deleted all cert-manager related CRDs (Not sure if this was necessary but Certificates come up by itself once cert-manager works properly anyway)
kubectl delete -f https://github.com/cert-manager/cert-manager/releases/download/v1.9.0/cert-manager.crds.yaml

3. Update Chart
helm repo add jetstack https://charts.jetstack.io
helm repo update

4. Install Chart with below config (Set host network true to make webhook pod run in the host's network namespace & Set securePort to 10260 to prevent a conflict between the webhook and the kubelet)
helm install cert-manager jetstack/cert-manager --namespace cert-manager --create-namespace --version v1.9.0 --set startupapicheck.timeout=5m --set installCRDs=true --set webhook.hostNetwork=true --set webhook.securePort=10260

Reference: https://cert-manager.io/docs/troubleshooting/webhook/#io-timeout

Thanks for the guidelines, @imageschool 's solution works to me

For anyone who still has problems with webhook connectivity, make sure to take a look at our guide: https://cert-manager.io/docs/troubleshooting/webhook/
Feel free to re-open this issue if necessary.

kind of, I run this as workaround
kubectl delete validatingwebhookconfiguration validating-webhook-configuration
kubectl delete mutatingwebhookconfiguration mutating-webhook-configuration

Yep. That's the only thing that fixed my issue.

To be clear, cert-manager needs its validatingwebhookconfiguration and mutatingwebhookconfiguration to work securely and correctly.


bib: update for latest images api

Draft until we have a real "images" release (not just a git snapshot). I needed this to explore our options for https://github.com/osbuild/bootc-image-builder/issues/230

Superseeded by https://github.com/osbuild/bootc-image-builder/pull/489


DATA_FOLDER is commented out in ob.cfg

Did a reinstall on my VM and got this error when I fired up OB on testnet
$ python openbazaar.py start --testnet
er(OpenBazaard('/tmp/openbazaard.pid'))
File "openbazaard.py", line 208, in init
getattr(self, args.command)()
File "openbazaard.py", line 258, in start
int(args.heartbeatport), time.time())
File "openbazaard.py", line 167, in run
username, password = get_credentials(db)
File "/home/hayek/OpenBazaar-Server/keys/credentials.py", line 9, in get_credentials
creds = settings.get_credentials()
File "/home/hayek/OpenBazaar-Server/db/datastore.py", line 811, in get_credentials
cursor.execute('''SELECT username, password FROM settings WHERE id=2''')
sqlite3.OperationalError: no such column: username
I omitted the banner for brevity. I found the fix - DATA_FOLDER is commented out in ob.cfg in the latest version of develop.
Pull Request:
https://github.com/drwasho/OpenBazaar-Server/pull/1

You may very well be correct, but I don't believe that you need DATA_FOLDER uncommented unless you have set it to be in a custom location previously. The default behaviour should be handled for you without this variable present in the config file (i.e commented out). Please say if this is not correct for your situation so it can be remedied.

I've been looking into this one since posting the issue.
I started over. Cloned the repo. Installed all the reqs and tests pass
Name           Stmts   Miss  Cover   Missing
--------------------------------------------
db                 1      0   100%
db.datastore     590     94    84%   28, 98, 102-108, 117, 316-317, 333-337, 461-462, 483-484, 509-510, 544-545, 584, 598, 603-609, 627-628, 667, 686, 695-696, 700-708, 711-713, 716-719, 722-728, 731-733, 740-741, 744-748, 751-763, 766-777, 804-807, 810-812, 827-830, 840, 846, 872
dht                2      0   100%
dht.crawling     126      6    95%   62-63, 128-129, 153-154
dht.node          88      0   100%
dht.protocol     183     55    70%   72-78, 92-93, 103, 118-128, 131-139, 166-167, 183-200, 207-208, 227-229
dht.routing      123     18    85%   71-72, 75, 78, 104-106, 109-111, 132-134, 168-172, 189
dht.storage      219     17    92%   125-126, 137-138, 153, 192-193, 206-207, 221-222, 230-231, 234-236, 252
dht.utils         31      0   100%
market             2      0   100%
--------------------------------------------
TOTAL           1365    190    86%
----------------------------------------------------------------------
Ran 92 tests in 4.222s

Tests look good.
python openbazaar start --testnet
$ python openbazaard.py start --testnet
________                      __________
\_____  \ ______   ____   ____\______   \_____  _____________  _____ _______
 /   |   \\____ \_/ __ \ /    \|    |  _/\__  \ \___   /\__  \ \__  \\_  __ \
/    |    \  |_> >  ___/|   |  \    |   \ / __ \_/    /  / __ \_/ __ \|  | \/
\_______  /   __/ \___  >___|  /______  /(____  /_____ \(____  (____  /__|
        \/|__|        \/     \/       \/      \/      \/     \/     \/

OpenBazaar Server v0.1 starting...
Traceback (most recent call last):
  File "openbazaard.py", line 286, in <module>
    Parser(OpenBazaard('/tmp/openbazaard.pid'))
  File "openbazaard.py", line 208, in __init__
    getattr(self, args.command)()
  File "openbazaard.py", line 258, in start
    int(args.heartbeatport), time.time())
  File "openbazaard.py", line 167, in run
    username, password = get_credentials(db)
  File "/home/hayek/OpenBazaar-Server/keys/credentials.py", line 9, in get_credentials
    creds = settings.get_credentials()
  File "/home/hayek/OpenBazaar-Server/db/datastore.py", line 811, in get_credentials
    cursor.execute('''SELECT username, password FROM settings WHERE id=2''')
sqlite3.OperationalError: no such column: username

But I can't find the db file to add the column. If I uncomment the DATA_FOLDER and specify the current working directory it runs:
$ python openbazaard.py start --testnet
________                      __________
\_____  \ ______   ____   ____\______   \_____  _____________  _____ _______
 /   |   \\____ \_/ __ \ /    \|    |  _/\__  \ \___   /\__  \ \__  \\_  __ \
/    |    \  |_> >  ___/|   |  \    |   \ / __ \_/    /  / __ \_/ __ \|  | \/
\_______  /   __/ \___  >___|  /______  /(____  /_____ \(____  (____  /__|
        \/|__|        \/     \/       \/      \/      \/     \/     \/

OpenBazaar Server v0.1 starting...
Generating GUID, this may take a few minutes...
 Perhaps you could post a message in the slack and someone that knows more than me will no doubt be able to help you out.

Okay, looks like this is a conflict in my filesystem structure.
I run OB from OpenBazaar-Server in ~/ On a test machine it created the ~/OpenBazaar folder. I'm not home to check but right now my guess I need to destroy the ~/OpenBazaar folder and re-run the server

You should only need to delete ~/OpenBazaar/OB-Testnet.db and then restart. I'm pretty confident your issue is just an old database.

^^ Tyler got it


windows vscode:  sqlfluff executable was not found

i have tried multiple ways to make this work, but the vscode extension cannot find the sqlfluff executable.  i have installed python and pip and sqlfluff on my windows machine and updated the Executable Path setting to "sqlfluff.executablePath": "C\Users\{my_dir}\AppData\Local\Programs\Python\Python311\Scripts\sqlfluff.exe", which exists and executes.  i have added the same to my PATH, as well as the parent Scripts directory.  i have rebooted my machine to make sure all settings take effect.
nothing is working.  i get the following error no matter what i've tried.  The sqlfluff executable was not found. Use the 'Executable Path' setting to configure the location of the executable, or add it to your PATH.
why isn't there a file selector dialog for this setting instead of having to enter it in text?  seems like that would be way easier.

Try changing the sqlfluff.executablePath setting to use forward slashes / instead of back slashes. Or perhaps try escaping your backslashes (double backslash) \\
If that doesn't work, are you able to run the sqlfluff --version command in a terminal successfully? If so I would expect the extension to work, if not then perhaps it is not added to your PATH correctly.

thank you @RobertOstermann for the reply.  i still am not having any luck.  i have tried forward slashes and escaped backslashes.  i have tried configuring it to point at both the windows exe file and the wsl sqlfluff file.  sqlfluff --version runs correctly in cmd.  where sqlfluff points to the same directory and executable in my PATH and in sqlfluff.executablePath

@skaylie  Hmm, you mentioned wsl, is that what you are using? I haven't tested this extension using wsl before so not sure the exact steps to take. You could try looking at the SQLFluff output channel and seeing exactly what command is being run and perhaps that will help, but I would guess it would not help much.
It is also possible that this error is not a problem with the executablePath, but rather an issue with the workingDirectory not existing.

Ope I think I figured it out. workingDirectory wants the absolute path to the workingdir, not the relative. That seems to have fixed it for me.

great @qbatten!  i'm still not having any luck.  can you post the settings.json file sqlfluff sections in their entirety?  it'd be helpful to see if I need to use C:..., /c/..., or \wsl$... notation.

@skaylie I'm on a mac; ran into same issue and resolved it by switching to full path. But not sure what the right windows-y path syntax is, sorry!

this is very frustrating as i still get the same error:  "The sqlfluff executable was not found. Use the 'Executable Path' setting to configure the location of the executable, or add it to your PATH."
Is there anyone working on a windows machine that's gotten the vscode plugin to work?  Can someone please post a CONCRETE EXAMPLE of what the inputs are supposed to look like to input the path to the executable.

@skaylie Just to confirm, you are on a Windows machine, but working in WSL? When you open VSCode, are you in a workspace or just opening individual files? Can you post an example of what your "sqlfluff.executablePath" and "sqlfluff.workingDirectory" settings are? What do you see in the sqlfluff output channel within VSCode?
I don't have a concrete example for the settings as I have not tried this extension using WSL before. But I should have some time within the next few days to set it up and hopefully give you an example.

thank you @RobertOstermann!!!  i appreciate the help.  i think this extension could save a lot of time for me over manually linting from the command line, which can be excruciating!.

i'm in a workspace within my wsl tree:  /home/kaylies/code/mdc-data-etl-mwaa/
i don't know what the sqlfluff output channel is?  how do i find it?
here are some of the settings i've tried.  it's not an exhaustive list, since it's been a little while since i tried in earnest and i don't recall all of the permutations.  i tried these with forward slashes, back slashes, double back slashes, etc.:

executable path:
sqlfluff
/home/kaylies/.pyenv/shims/sqlfluff
\\wsl$\Ubuntu\home\kaylies\.pyenv\shims\sqlfluff
C:\Users\kaylies\AppData\Local\Programs\Python\Python311\Scripts\sqlfluff.exe

workingDirectory:
/home/kaylies/code/mdc-data-etl-mwaa/
\\wsl$\Ubuntu\home\kaylies\code\mdc-data-etl-mwaa

@skaylie
This is where the output channel is.

Here is what I have found so far for the path in WSL.
For the executable path, this is what worked for me with the WSL path. It was just the path I got from the which sqlfluff command. I think you mentioned you tried that and it didn't work, maybe something to do with it being in pyenv? I also was able to get it to work without setting an executable path, but had to have the sqlfluff command working in my default vscode terminal.
"sqlfluff.executablePath": "/home/username/.local/bin//sqlfluff"

If that doesn't work for you, I think you might have better luck with using the windows path, which should look something like this I think.
"sqlfluff.executablePath": "/mnt/c/Users/kaylies/AppData/Local/Programs/Python/Python311/Scripts/sqlfluff.exe"

I would recommend not setting the workingDirectory, though you could try "sqlfluff.workingDirectory": "${fileDirname}", I had that setup and it worked for me.
Let me know if these changes work for you, if not I will try to investigate further, but am running out of ideas.

hi @RobertOstermann.  sorry for the delayed response.  none of these solutions work for me.  i always get the same error that it can't find the executable.
i'm a bit surprised that i'm the only person experiencing this.  are there any users with windows machines that have the extension working in vscode?

@skaylie I am about out of ideas to solve your problem. I was able to get this working on a windows machine both with and without using WSL.
If you update to v2.3.4 there is a new command SQLFluff Debug Extension in the command palette that you could try to run. It will run through a few test commands to try and help narrow down if your actual issue is with the workingDirectory or the executablePath setting. Let me know where that test fails for you, maybe it will help solve the issue?
Beyond that, I am not sure what else to do. You could also clone this repo yourself and try debugging and seeing if you can get it working on your own. The code that spawns the child process is in src/features/providers/sqlfluff.ts around line 119.

@RobertOstermann are you able to post the exact entries for Executable Path in both basic windows and wsl?  maybe ( or likely!) there's something stupid i'm doing.

I don't think that will help much, I basically already posted them, and I usually just don't set anything for either of the settings and it just works. Like I mentioned in my previous comment, I think you'll have to try that debug command or clone the extension and try to debug it yourself.
WSL - Using SQLFluff on Linux
"sqlfluff.executablePath": "/home/username/.local/bin//sqlfluff",
"sqlfluff.workingDirectory": "${fileDirname}",

WSL - Using SQLFluff on Windows
"sqlfluff.executablePath": "/mnt/c/Users/username/AppData/Local/Programs/Python/Python39/Scripts/sqlfluff.exe",
"sqlfluff.workingDirectory": "${fileDirname}",

Windows
"sqlfluff.executablePath": "sqlfluff",
"sqlfluff.workingDirectory": "${fileDirname}",

@RobertOstermann I GOT IT TO WORK!!!!!!!!!🥳🥳🥳
the problem was with the working directory, not the executable path.  (you might want to revamp the 'can't find the executable' message to distinguish if it's having an issue with the executable path or the working directory.  also, you could enhance the message to show the fully qualified path it's looking for the executable in.)
thank you for the recommendation for the SQLFluff Debug Extension - that's what pointed me in the right direction.  it was looking for my \$wsl folder, which didn't work.  it needed a fully qualified windows path, which for Ubuntu is buried deep in the Users directory.
below are the exact inputs that work for me.  all settings are identical in both User and Workspace.
thank you for all the help!  this will save me a ton of time linting my files!
Executable Path:
sqlfluff
Working Directory
C:\Users\kaylies\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\kaylies\code\mdc-data-etl-mwaa
Config:
C:\Users\kaylies\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\kaylies\code\mdc-data-etl-mwaa\dags\dbt.sqlfluff

Awesome! Glad you got it working! I definitely need to update the error message to note that it could be either executable path or working directory. And glad the new SQLFluff Debug Extension command helped point you in the right direction, wasn't sure if that would do the trick or not.


Header file (cudpp_config.h) not installed by CMake

What steps will reproduce the problem?
1. Run cmake on Linux (Ubuntu)
2. Set install directory to /home/<user>/local/cudpp/
3. make && make install
4. compile a separate project that uses cudpp

What is the expected output? What do you see instead?
Expected output: successfull compilation
Actual output: compilation aborts with missing header file (cudpp_config.h)
Works well when cudpp_config.h is manually copied into the
<install_dir>/include/ directory.

What version of the product are you using? On what operating system?
cudpp 2.0

Please provide any additional information below.
Should be simple to add an install cmake command for the cudpp_config.h
configure file.

Original issue reported on code.google.com by<EMAIL_ADDRESS>on 6 Jun 2012 at 8:24

Merged into: #115

This is a duplicate of issue 115. Strange that they both were reported today.

Original comment by<EMAIL_ADDRESS>on 6 Jun 2012 at 8:35

Changed state: Duplicate


How to set this widget into landscape mode

HI, as I download the full code source from this repository, I cannot show the view right in landscape mode.  All single item view was scaled as the picture showing below and the translation in InfiniteCyclePageTransformer was measured by screen width. So my question is what can I do when the app is all in landscape Activity and shows the effect of portrait the same, when the code is only for portrait screens? Thank you

OK，I have solved by setting the center_page_scale_offset to negative numbers. Thanks all the same.


Makefile: add way to skip starting kvstores, running govet

Some packages are not dependent upon the kvstores being running for
unit-testing, so provide the option for end-users to skip starting and stopping
the kvstores. The default is to still start / stop the kvstores. Disabling can
be done by setting SKIP_KVSTORES="true" when running the unit tests.
Running govet can take a long time, and developers might want to just quickly
run the unit tests if they saw desire via make. So, provide an option to skip
running govet as well. This can be done by setting SKIP_VET="true" when
running the unit tests.
Example:
SKIP_KVSTORES="true" SKIP_VET="true" TESTPKGS="pkg/eventqueue" make unit-tests

Fixes: #8750
Signed-off by: Ian Vernon<EMAIL_ADDRESS>

This change is

Coverage increased (+0.02%) to 44.154% when pulling 79a187847bfe674346e8d4d880a3ec9a62d02e42 on pr/ianvernon/skip-kvstores-govet into 363908b03e0c802797506484254490c979cee693 on master.


Removing unneeded Node modules and Stripping down Dockerfile for broker

Removing unneeded Node Modules from various applications
Stripping down Dockerfile to have only necessary node modules and applications

Pull Request Test Coverage Report for Build 3897

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.008%) to 89.326%

Files with Coverage Reduction
New Missed Lines
%

data-access-layer/cf/src/TokenIssuer.js
1
98.55%

Totals

Change from base Build 3895:
-0.008%

Covered Lines:
9224

Relevant Lines:
9979

💛  - Coveralls

Validation on k8s cluster: n-1 is succeeded.

Validation on k8s cluster: n-2 is succeeded.

Validation on k8s cluster: n is succeeded.

Validation on k8s cluster: n is succeeded.

Validation on k8s cluster: n-1 is succeeded.

Validation on k8s cluster: n-2 is succeeded.

Validation on k8s cluster: n is succeeded.


tmux panes die upon creation

When I source the syntax highlighting script in my .zshrc, and then launch tmux and create panes, either the newly created pane or previously created panes immediately die.
I have reported the issue on two zsh plugin manager repos, thinking the problem was there:

https://github.com/tarjoilija/zgen/issues/53
https://github.com/b4b4r07/zplug/issues/35

But after looking into it, I found that it has to do with loading the syntax highlighting script. As soon as I place source ~/.zplug/repos/zsh-users/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh in my .zshrc, the behaviour occurs.
This issue seems to only occur on OSX, as I was unable to reproduce the issue in docker. I am using iterm2/3, and zsh 5.1.1 (x86_64-apple-darwin13.4.0) and tried both tmux 1.9 and 2.1. I have tried on operating systems Mavericks and Yosemite.

I can't reproduce this with tmux 2.1 on OSX 10.11.3 (zsh 5.2) or 10.9.5 (zsh 5.0.2 and 5.2) with a .tumx.conf of
set -g default-command "zsh -f"

and the steps

Start tmux
Create a new pane
Source zsh-syntax-highlighting.zsh

Am I missing a step?

Alright, I have done a bit more dissecting. The problem seems to appear only when using zsh-syntax-highlighting in conjunction with vi-mode. This should reproduce it:
source ~/robbyrussell/oh-my-zsh/plugins/vi-mode/vi-mode.plugin.zsh
source ~/zsh-users/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

Could you set-option -g set-remain-on-exit on and see if you get an error message?  Can you try zsh 5.2 (it sounds like zsh is exiting prematurely)?

Alright, all i get is "Pane is dead" in the lower right corner. Actually, it shows though that it's not the new pane that is dying, but always the previous one.

Same behaviour with zsh 5.2 (zsh 5.2 (x86_64-apple-darwin13.4.0))

Alright, seems that if you comment out L7-L10 of the vi-mode scripts, it all works.

I edited your link to avoid bitrot (see http://www.zsh.org/cgi-bin/mla/redirect?WORKERNUMBER=37966).  Can you change that zle reset-prompt to zle .reset-prompt (with the dot) and try again?
I don't recall whether there were any relevant changes in master post 5.2.

I edited your link to avoid bitrot

I was just editing my comment to do the same, after I noticed.
Using setopt XTRACE VERBOSE on top of my .zshrc, I can see what's happening a bit clearer: When I create a second pane, the previous one receives the window sized change signal and executes the aforementioned lines, or in particular: zle && { zle reset-prompt; zle -R } and then it crashes. I feel like I have to take this issue to their repo now, but I have already filed an issue for this in two other projects... :/

Can you change that zle reset-prompt to zle .reset-prompt (with the dot) and try again?

that works!!

Do you want to create a pull request at their repo? I would not want to take your credit. Could you reference this issue, and also:

https://github.com/tarjoilija/zgen/issues/53
https://github.com/b4b4r07/zplug/issues/35

please? Alternatively I can do this for you and give you attribution in the commit and the PR?

Do you want to create a pull request at their repo?

Hold your horses :-)  I only asked you to make that change in order to determine whether the trigger to the bug was in z-sy-h's code or elsewhere; I'm not sure yet whether it's a correct change for vi-mode upstream to make.  (Adding the dot bypasses z-sy-h for that one widget invocation.)
To debug it further, you can run functions -t ${widgets[reset-prompt]#user:} after loading z-sy-h, which will print a line-by-line trace to stderr, so we can see what's the last line run before zsh crashes.  (This is similar to the xtrace option.)
Can you easily test zsh from master?  (Clone https://github.com/zsh-users/zsh/, build/run it as Util/preconfig && ./configure --enable-zsh-debug && make && Src/zsh -f.)  I'm trying to rule out the possibility that it's a zsh upstream bug that has been fixed in zsh 5.3-dev-1.
Could you check what error code zsh dies with?  You ought to be able to get that by using /bin/sh as your shell in tmux, running zsh within that, starting a new pane, and then echo $? after zsh dies.
P.S. On my system, ${widgets[reset-prompt]#user:} is _zsh_highlight_widget_reset-prompt.

By the way, setting TRAPWINCH in a plugin (like vi-mode does) isn't a great idea: if the user's .zshrc or another plugin also define a WINCH trap, vi-mode's trap would be overridden.
I guess the right fix would be to develop some sort of $sigwinch_functions array, like $precmd_functions, to allow multiple subscriptions.  (See also add-zsh-hook.)
Feel free to point this out to the vi-mode developers.  (I don't use that plugin myself.)

Alright, I will set some time aside this weekend to run through the steps above. I doubt I'll get to it today.

Strange, I cannot repro at home at all with the same set up as above.. This bug is getting the best of me.

Then try following those steps on the one computer that does reproduce the problem :-).  Also, compare the dependencies between the reproducing and non-reproducing setups (from patches to zsh itself up to and including kernel versions, since signals are involved), and figure out whether the problem might be local to just one machine for some reason.

I won't be looking into this any further. Should anyone else be tripped up by this, I think there's enough of a bread trail to follow and find this thread (or so I hope). If you think that the dot in front of reset-prompt is a somewhat acceptable (despite not perfect) solution that could be suggested over in the vi-mode repo, I'd be glad to suggest it there. Feel free to close this issue.

@felixSchl Thanks for following up.  Closing as you suggested.  If you or anyone else runs into this issue in the future, feel free to reopen or to file a new issue.

I have seen something similar to this. For details, see https://github.com/zsh-users/zsh-autosuggestions/issues/166.


Add Mozilla reference link

@MikeBazMSFT : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@msmbaldwin Hi, would you review the proposed update to your article? Thanks.

Thank you for your contribution, @MikeBazMSFT   -- we appreciate it! #sign-off


Decoupled code from DefaultSigningKey

Decoupled code from DefaultSigningKey. Makes testing a little bit easier and is cleaner.

Codecov Report

Merging #16743 (bd54abd) into main (4debb74) will increase coverage by 0.03%.
The diff coverage is 76.00%.

@@            Coverage Diff             @@
##             main   #16743      +/-   ##
==========================================
+ Coverage   45.37%   45.40%   +0.03%
==========================================
  Files         760      760
  Lines       85482    85484       +2
==========================================
+ Hits        38785    38816      +31
+ Misses      40414    40387      -27
+ Partials     6283     6281       -2

Impacted Files
Coverage Δ

services/auth/oauth2.go
49.18% <0.00%> (ø)

routers/web/user/oauth.go
37.38% <81.25%> (+0.14%)
:arrow_up:

services/auth/source/oauth2/token.go
72.72% <85.71%> (ø)

modules/proxy/proxy.go
15.15% <0.00%> (-3.60%)
:arrow_down:

modules/process/manager.go
72.83% <0.00%> (-2.47%)
:arrow_down:

models/repo_list.go
77.64% <0.00%> (-0.79%)
:arrow_down:

modules/queue/workerpool.go
54.96% <0.00%> (+0.38%)
:arrow_up:

services/pull/pull.go
42.19% <0.00%> (+0.40%)
:arrow_up:

routers/api/v1/repo/pull.go
29.63% <0.00%> (+0.51%)
:arrow_up:

modules/queue/unique_queue_disk_channel.go
48.63% <0.00%> (+1.36%)
:arrow_up:

... and 6 more

Continue to review full report at Codecov.

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


[BUG] Lombok provided dependency is deleted

Describe the bug
After depclean completes, and given lombok is used, the lombok direct dependency is not longer present on the debloated pom.xml
To Reproduce
Steps to reproduce the behavior:

Use Lombok (for instance @Data annotation) with its dependency
Run depclean

Expected behavior
Lombok is kept in the debloated pom
Additional context
Lombok does bytecode modification, removing all traces of itself while generating plumber code. That is why it is not present in the analyzed bytecode. It is visible in the source code, though.

Hi @afillatre, we are aware of this case. Lombok manipulates the bytecode at runtime, so there is no way for a tool like DepClean to notice that it is being used.
One way to mitigate this issue is implementing source code analysis, which still does not guarantee that all the dynamic usages will be caught.
If you want to make sure that lombok is kept in the debloated pom, just configure DepClean with the ignoreDependencies parameter.

Yes, I figured I much and used that workaround. I have no other solution ATM, other than doing a quick source code search for well-known libraries that work this way (which implies a tighter coupling to specific libs :/)

BTW, what's the point of cleaning provided dependencies ? Those dependency are not included in the packaging (by design), so why bother cleaning them ?
That may actually fix some issues with Lombok, Mapstruct, etc.

BTW, what's the point of cleaning provided dependencies ? Those dependency are not included in the packaging (by design), so why bother cleaning them ?

We want to make DepClean as configurable as possible. That's why the ignoreScopes parameter is provided. The user can choose not to analyze dependencies with specific scopes as desired, e.g. test and provided scopes.

I see. Maybe provided (and even test) scope(s) should be excluded by default to avoid those issues ? Anyway, it's good that it is a much configurable :)


Fix: make parse comment more readable

This is a draft also addressing #91 to make the method easier to follow and more readable.
As it was there were multiple nested helpers making it super hard to follow / trouble shoot. i'm trying to surface each step and make each method name more user friendly with this draft pr.

ok i have added some very basic tests and some structure around the test suite. i don't want to bloat this pr even further so i think this is ready for a review / merge. ✨


[Nerdpack] QA Bug Bash! 🐛

Description
As part of production readiness, we should conduct a bug bash (QA testing session). The goal is to catch as many bugs as possible.
Acceptance Criteria

[ ] Conduct a bug bash
[ ] Create tickets for bugs

Squishy text

I'm going to run through some tests 🧪


feeding neurons

Lau et al. (2021)
FBrf0248940
from novel_anat list

This paper is characterising Gal4 lines - information not good enough to make new cell types.


Added detection of operating system and when the OS is a Mac and any …

…of the show dialogue / alert methods are called, instead of using the AWT message dialogue, an AppleScript one liner is run and the newer style of "slide in / slide out" notification is performed in the same way that it does in Windows.

Here is a screen capture video showing the exact same code running on Mac, then on Windows (I just opened the same project folder in Windows and ran the demo).
We don't get the fancy icons on the Mac as we do in Windows, but the behavior is far more consistent across platforms than what AWT offers.

@EasyG0ing1 Thanks so much for the PR! I did some reading about using osascript but didn't think anymore of it. This looks like it will work well on several versions of MacOS, while AWT doesn't. I'll merge, and publish this to Maven central in a new version sometime this week. Thanks for this solution!


Refactor our mediaflux Namespace/Collection hierarchy to match RC/Chuck's

As of right now, our local Mediaflux instance creates Collections (projects) to be children of Namespaces. They should instead have a 'cousin' relationship as opposed to a parent-child relationship.
Our structure will be as follows (notice the /td-demo-001NS cousin for namespaces):
/td-demo-001 (namespace)
/td-demo-001/project1 (collection)
/td-demo-001/project1 (collection)
/td-demo-001NS (namespace)
/td-demo-001NS/project1NS (namespace)
/td-demo-001NS/project2NS (namespace)

Notice that this mimics the structure of Mediaflux in production but this is not the structure used for projectg in the staging environment (td-meta1).
We have code in our ProjectMediaflux class to create the rootnamespace that will need to be updated: https://github.com/pulibrary/tiger-data-app/blob/4ea19f3ffdb4a76a2587387fea3a20e9e67ca20a/app/models/project_mediaflux.rb#L72
And also the code that sets the "project_namespace" on the same class: https://github.com/pulibrary/tiger-data-app/blob/4ea19f3ffdb4a76a2587387fea3a20e9e67ca20a/app/models/project_mediaflux.rb#L12
Acceptance Criteria

[ ] The Collection for a project is created at within td-demo-001 and Namespace for a project is created under td-demo-001NS

Below is how projects are structured in production which is the model that we want to follow:

Hey team! Please add your planning poker estimate with Zenhub @hectorcorrea @JaymeeH @jrgriffiniii @leefaisonr


Adding tests

Great project @rrag  - if I were to add some tests where would you most want to see them first?
My preference would be to use jest but open to a different library if you'd prefer.

Thank you, jest is great, I am good with the choice. There are no tests right now so having any test is an improvement. I would like to chat and discuss some of the topics I am not sure how to solve

Trigger mouse and touch events
Testing with canvas elements
comparing the output of canvas with an image

I suppose SVG compare can be done via jest snapshots
For starters, I would say testing the methods on ChartCanvas, EventCapture and GenericComponent will cover a lot of scenarios. Also many of these methods can be tested without triggering mouse/touch events and dealing with canvas/svg, so I guess using only jest for these would suffice.

Great, I've put this on my backlog and have some time coming up in September which I would love to spend on the project.


"replaceText" not working

Environment - node.js version v21.0.0
OS - Mac
The package is very useful. Thanks for open-sourcing it.
I am trying to use the software to generate PPTX file from a template file. The "ReplaceText" function is not working as expected.
I tried to debug the code. But could not find any method that gives me text in an element.
Please find attached sample code I am using for my testing.
agreement-ppt.zip

I see there is a difference: err="1" Could this be related to spell checking? I can remember some really weird situations in the past and finding a solution will make a happy man out of me :laughing:

I did try the solution you mentioned earlier. Somehow I did not work.
What I did now, is that I deleted the placehoder and re-added it to PPT. Now it worked fine. We can close the issue. Thanks for your help.
Is there a way, we view the ppt xml so that it is easy to debug.

You could try slide.modifyElement('testElementName', [XmlHelper.dump]);
I'm happy to help :smiley:

I identified the underlying issue. I utilized an existing PowerPoint (PPT) file as a template and included curly brackets around a placeholder string that was already present in the presentation. This unintentionally resulted in the creation of three distinct components ('{', 'placeholder string', '}'), as shown by you above. Consequently, the replaceText function did not function as expected.
It might be beneficial to include this information in a troubleshooting guide to help others avoid encountering a similar issue in the future.

Thanks a lot for your feedback. In my point of view, this is a bug, because your approach should work on all text elements. At the moment, I won't go deeper into this, because the workaround is very simple.

It could also help to disable spell checking for {{mytag}}. If ppt encounters an unknown word, it will split xml blocks and mark the unknown with an err="1" attribute.


It would be nice with get methods that checks for nil for Response fields

Code generated with protoc creates nice Get methods for fields so that you do not have to do nil checks when fetching fields in gRPC responses unless you want to.
I think such methods should exists on connect.Response too since the current API forces awkward nil checks in some situations.
I can make a PR if you think it is a good idea to add GetMsg, GetAny, GetHeader, and GetTrailer to connect.Response.
Alternatively Any, Header and Trailer could have the nil check added, but that would be an API breaking change so probably not a good idea.

Hi @andersroos! Can you clarify why you're doing nil checks for these fields?

Response.Msg is never nil. If it is, a panic is appropriate - there's a critical correctness problem, likely in an interceptor.
Response.Any() is never nil - partly because Msg is never nil, but mostly because there's always at least a type.
Response.Header() is never nil.
Response.Trailer() is never nil.

Hello @akshayjshah!
To clarify: I mean the situation when Response is nil (which is is when there is an error), not when the individual fields are nil.
When you use plain gRPC with proto payloads the generated objects have access methods which makes nil checks. This can we very convenient sometimes. For example when you have a helper method that does both error checking and uses a sub part of the message. Then you don't have to do error checking before calling the helper, for example like this using regular gRPC:
response, err := client.Method(ctx, &service.SomeRequest{})
// This is not possible with connect because you have to check if response is nil before accessing response.Msg
return helper(response.GetSomePart().GetSomSubPart(), err)

I see. In this case, I think we're going to stick with standard Go semantics - if a function returns a non-nil error, users should assume that the other returned values aren't safe to use.
If you'd prefer something more like what you're proposing, you can do so with a small helper function:
func OrZero[T any](req *connect.Request[T]) *connect.Request[T] {
	if req != nil {
		return req
	}
	var zero T
	return connect.NewRequest(&zero)
}


Not able to install the pip package TxGNN

Hi, i am receiving this error while trying to install the package from the pip documentation. I am trying to run the installation steps on Google Colab Pro. Please Help. I am also attaching the screenshot of the error.

Also Colab link-> https://colab.research.google.com/drive/1vvaxdGqeVcdO3m5v9OUZbxDx-R4uypSp?usp=sharing

Hi, I was looking at the colab and it seems like it is the DGL issue.
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
PackagesNotFoundError: The following packages are not available from current channels:

dgl-cuda{11.8.0}==0.5.2

Could you specify the correct cuda version for google collab for 0.5.2 dgl?

I had similar experience at first. For linux users, the following link is suggested to find specific version for dgl.
https://conda.anaconda.org/dglteam/linux-64
conda install -c dglteam dgl-cuda10.1==0.5.2   (the cl I used)
Btw, many thanks to Dr Huang for your amazing work!

Awesome! Thank you for the help and the kind word!

Hi Dr Huang,
Again I had similar issue (as above) with the last step "pip install TxGNN".
# Mirror: (RTX2080 Ti) PyTorch  1.6.0, Python  3.8(ubuntu18.04), Cuda  10.1

conda create --name txgnn_env python=3.8
conda activate txgnn_env

conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1 -c pytorch

conda install -c dglteam dgl-cuda10.1==0.5.2

pip install txgnn

So I tried to install from local env. However "git clone  https://github.com/mims-harvard/TxGNN.git" failed so I downloaded the code, moving the version.py to the main folder, and tried the pip install . code and it worked.
(Sorry about the pull request when moving version.py file. Please ignored it. )
Again many thanks. I cannot wait to explore txgnn now, 😄

Hi Dr Huang，I encountered an error while trying to pip install TxGNN  Please Help


Only Allow Special Clients to view all topics

Only allow special clients to view all topics (for security). Much of this change will be made in my branch of surgemq lib.

Also relevant: https://github.com/suyashkumar/surgemq/commit/2609bf4d2870077bf8a28a631c90bf7e34f51117


feat: Add collapsible_if

Hi @0xLucqs
Here my progress about the issue #37
This PR includes the basic structure with the necessary files to implement the collapsible_if lint. Now, I'll be working on the implementation of the lint and the corresponding tests

gm @0xLucqs
Here my PR with the implementation for the lint collapsible_if.
What changes did I make?

Add diagnostic in the file collapsible_if.rs
Add fix_collapsible_if function in the file fix.rs
Add test in tests/test_files/collapsible_if/collapsible_if
Add test names in the file tests.rs

gm @0xLucqs
Conflicts resolved

@all-contributors please add @jimenezz22 for code and tests


Password change option for local users

How can a local user change their password from the service workbench interface/dashboard after being added?

Hi @mahbuburrahman thanks for reaching out, passwords are handled by Amazon Cognito so the only way to do it from service wokbench application would be clicking forgot password? link from login screen and following instructions.
-Fernando

@FernandoAranda  thank you for your comment. I am not sure why I am unable to see the 'forgot password' link on the login page. The only information I can see is the login information. A screenshot has been attached for your reference.

Hi @mahbuburrahman, allowing forget password is a setting from Amazon Cognito you can enable it in your user pool > Sign-in Experience > User Account Recovery

@FernandoAranda Thanks! I will explore it.

Hi @mahbuburrahman  let us know if there is anything else we can help you with

@FernandoAranda  I am currently not using federated login – looks like there is no Cognito pool in the management account for SWB. Can you please let me know this Cognito user pool available for non federated login?

Hey Fernando, just a comment about the above - the Customer is running an old version of SWB (1.0.0) that has not been upgraded - it was using local users / passwords -
What is the upgrade path and process to get to the latest stable version? Is it possible?
Regards,
Krupesh

Hey @krupeshd1 ! You can check out the "Import Service Catalog Products" section of the Post Deployment Guide to get instructions on how to upgrade.

Hey Tyler,
Thank you - where does it highlight how to upgrade the initial deployment of SWB? Specifically these:
Service-Workbench-on-AWS 1.0.0 cnh-swb cnh-test Post-Deployment
| cnh-test-va-cnh-swb-edgeLambda | CREATE_COMPLETE | 2022-04-06 17:26:29 UTC-0400 | Service-Workbench-on-AWS 1.0.0 cnh-swb cnh-test Edge-Lambda
  | cnh-test-va-cnh-swb-backend | CREATE_COMPLETE | 2022-04-06 17:19:55 UTC-0400 | Service-Workbench-on-AWS 1.0.0 cnh-swb cnh-test Backend
  | cnh-test-va-cnh-swb-infrastructure | CREATE_COMPLETE | 2022-04-06 17:16:02 UTC-0400 | Service-Workbench-on-AWS 1.0.0 cnh-swb cnh-test Infrastructure
Regards,
Krupesh

Hi @krupeshd1,
You are many major versions behind mainline of SWB at this point. If possible, doing a fresh install would be ideal. If that is not possible, the changes, including breaking change are outlined in the CHANGELOG. If you read through the changes, there should be instructions on how to upgrade between major versions. I would recommend doing it major version by major version. I will admit, we haven't heard of anyone upgrading from v1.0.0 to >v5.0.0. We recommend keeping up with these updates in the future so you don't get so behind feature development.
Let us know if you have any questions!

Hello - one more question - if we decide to go with a new install of the latest service workbench - are there any known issues reusing the same management account? Of course the names will differ for the stacks -
Regards,
Krupesh

Hi @krupeshd1 ,
Deploying another instance of SWB using the same account should work as long as you change the stage name, that will make sure stacks have different names.
In case you find any problems doing that don't hesitate to open a new Github issue
Regards
-Fernando


Python 2 is going out of support

Would a pull request to port this script to python3 be accepted?
It may be possible to make this script work in python2 and python3 by using the right __future__ imports.
Python 2 is going out of support in April 2020.

Sorry, the porting work was already done in the wptagent project, the updated script just wasn't copied over here.  I'll copy it over in a few minutes.


Move cachedDb to reth-revm crate

Describe the feature
this entire file
https://github.com/paradigmxyz/reth/blob/537bdee27f9276999141dfdf5ea3cc7540d5238e/crates/payload/builder/src/database.rs#L1-L1
can be moved and renamed to src/crates/revm/cached.rs instead
Additional context
No response

Hello, may I work on it ?


Inference time compares with resnets?

Any runtime comparation with vallina resnets?

We compared the vallina resnet networks in the same experimental environment, as shown in Table 3 in the paper.


Adapt examples to ssl feature

Reported in #61

When --all-features was used, the ssl transport
was provided via the transport_ssl module.
However, the examples were not prepared for this,
and cargo test --all-features would fail.
As both transports are mutually exclusive, it
seems reasonable to just use the same module name
and make life easier for clients.

[x] fix existing examples
[ ] add examples which would use ssl

@AlexPikalov : earlier pr on examples is less ergonomic. as in why should a client bother to put config(not ssl)  for those who does n't have ssl setup. cassandra deployments mostly would run non-ssl (due to perf reasons) but because of org-wide  reasons (security) they might end up using ssl.
so in a nutshell what I was try to convey was the earlier examples were good !!! we have to find another way to incorporate bryson's change but leaving the examples in tact. perhaps use of enums or traits.
and one more it is better to rename ssl to tls

@harrydevnull : of course client should not put explicitly #[cfg(not(feature="ssl"))] into its real code if they don't need SSL. And, in fact, it's not needed.
At the moment for me it's hard to imagine how to implement it using enums. Could you please provide quick code snippet, so we could discuss?

In examples, #[cfg(not(feature="ssl"))] and #[cfg(feature="ssl")] should be considered as branches which a developer should refer to find a solution if he develops with SSL disabled and enabled respectively.

As an alternative modification, we could provide a single trait Transport, which CDRS would receive, from one hand. That could be an interface common to both TCP and TLS. After that we could have one NetTransport which would have feature specific constructor and Read+Write implementation.
So in a code, developer would has
use transport::NetTransport

Yes that's what I have been trying to get at...
But I ran into couple of issues... I ll try to push to a branch so that you
can take a look...
On Mon, Feb 6, 2017 at 7:55 AM Alex Pikalov<EMAIL_ADDRESS>wrote:

As an alternative modification, we could provide a single trait
Transport, which CDRS would receive, from one hand. That could be an
interface common to both TCP and TLS. After that we could have one
NetTransport which would have feature specific constructor and Read+Write
implementation.
So in a code, developer would has
use transport::NetTransport
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AlexPikalov/cdrs/issues/63#issuecomment-277672357,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM2UnbAKDbrohM9FqEwfaXg1XJvXFVR0ks5rZxg8gaJpZM4L3i2Y
.

@harrydevnull sure, go ahead. I'll take a look

@harrydevnull let me work on this change along with updating examples.

sure !! go ahead
On Mon, Feb 6, 2017 at 12:51 PM, Alex Pikalov<EMAIL_ADDRESS>wrote:

@harrydevnull https://github.com/harrydevnull let me work on this
change along with updating examples.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AlexPikalov/cdrs/issues/63#issuecomment-277758861,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM2UnV762j4vDF_4tjr15X7UwdJPt6lrks5rZ12PgaJpZM4L3i2Y
.

@AlexPikalov : i have been trying out options I have pushed my code base to github
https://github.com/harrydevnull/cdrs/tree/some

@harrydevnull Awesome! After some minor formatting we could merge it. Just few hints:

https://github.com/harrydevnull/cdrs/blob/some/src/transport.rs#L20

TcpStream::connect(addr).map( | socket | Transport { tcp: socket })

https://github.com/harrydevnull/cdrs/blob/some/src/transport.rs#L43

TcpStream::connect(addr).map(|socket| Transport { tcp: socket })

3 https://github.com/harrydevnull/cdrs/blob/some/src/transport.rs#L14 would be better to put after Transport declaration

And of course we could replace needless return xyz; statements by simple xyz in accordance to Clippy rule

That is exactly what I was thinking about. 👍

Nah it is not compiling yet 😩
On Mon, Feb 6, 2017 at 3:29 PM Alex Pikalov<EMAIL_ADDRESS>wrote:

@harrydevnull https://github.com/harrydevnull Awesome! After some minor
formatting we could merge it. Just few hints:

https://github.com/harrydevnull/cdrs/blob/some/src/transport.rs#L20

TcpStream::connect(addr).map( | socket | Transport { tcp: socket })

https://github.com/harrydevnull/cdrs/blob/some/src/transport.rs#L43

TcpStream::connect(addr).map(|socket| Transport { tcp: socket })
3 https://github.com/harrydevnull/cdrs/blob/some/src/transport.rs#L14
would be better to put after Transport declaration
https://github.com/harrydevnull/cdrs/blob/some/src/transport.rs#L37

And of course we could replace needless return xyz; statements by
simple xyz in accordance to Clippy rule
https://github.com/Manishearth/rust-clippy/wiki#needless_return

That is exactly what I was thinking about. 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AlexPikalov/cdrs/issues/63#issuecomment-277803587,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AM2Unb0Peyr1BZqlnAkJla7kq_3hNCqDks5rZ4KmgaJpZM4L3i2Y
.

I can take a look tomorrow.

@AlexPikalov : you can close down this issue right?

@harrydevnull right. Closing.