Expose "name" attribute for "--name" argument of subscription-manager

RHSM includes the ability to set the hostname to be used for the registration by using the "--name" option. This feature isn't exposed in the cookbook attributes.
From subscription-manager help :
--name=SYSTEMNAME     name of the system to register, defaults to the hostname
This is useful during test-kitchen testing to ensure the hostname used is unique.

On further testing, katello/foreman apparently ignore the 'name' for, at least, GUI display so getting this to work will involve code changes in those projects as well. Closing this issue as impractical at this time.

@alancdavis01 I started messing with this and was able to get it to work.  What version of satellite are you running?


iOS Voice Assistant

I am getting some failed to register bundle identifier errors, does this happened to you?

I am getting some failed to register bundle identifier errors, does this happened to you?

 Fixed it using the callbacks correctly, we now only record when needed. Also fixed a bug with not flushing the warmupPCM if it never reaches the 1 second mark.


Checksum files

[ ] Generate checksum for files.
[ ] Verify file integrity on download operation
[ ] Verify file integrity on upload operation
[ ] Temp extensions on copy/move files on server

Adds @rodrigodosanjosoliveira  as a contributor for infra, test, code, ideas, planning, feedback, maintenance.

@all-contributors please add @dfonseca for infrastructure, tests and code

@all-contributors please add @rodrigodosanjosoliveira for infrastructure, tests and code


there is a bug when the line have Chinese characters

“Align the operands of a condition in an if statement spanning multiple lines”
there is a bug when the line have Chinese characters
after use 'rubocop -a', it looks like:
return '今天天气不错，挺风和日丽的。' if condition1 ||
                            condition2

I think the problem is that in most editors, even when you select a monospace font, the Chinese and Latin characters have different widths, so alignment becomes impossible. See here:
return '今天天气不错，挺风和日丽的。' if condition1 ||
#       JTTQBC
                            condition2

RuboCop aligns based on the assumption that all characters have the same width.


[cnats] Add new port.

Describe the pull request
Add nats.io C client port

What does your PR fix?
Fixes #9709, #9182, #9743

Which triplets are supported/not supported? Have you updated the CI baseline?

All, No

Does your PR follow the maintainer guide?

Yes
If you are still working on the PR, open it as a Draft: https://github.blog/2019-02-14-introducing-draft-pull-requests/

I messed up cnats & libgpiod branches badly.. and I do not know how to undo that cleanly vs the PR. I'm going to close both cnats & libgpiod PRs and resubmit a clean ones. sorry for the noise.


[Reputation Oracle] Refactoring Cron Module

Issue tracking
This change is being tracked via a [Reputation Oracle] Refactor processPaidWebhooks method
#2638, the discussion in comment https://github.com/humanprotocol/human-protocol/pull/2658#discussion_r1830811808, which outlines the need for restructuring the webhook handling logic in the cron-job service.
The requirement is to ensure that the try..catch block is fully contained within the webhookService while the cron-job service should only handle job execution and locking.
Context behind the change
In the previous implementation, the cron-job service was responsible for handling the webhook logic, including error handling with try..catch. This made the service do more than it should, as its main responsibility is to schedule and ensure a lock to avoid parallel job execution.
This pull request refactors the code by moving the try..catch logic into the webhookService. The cron-job service will now solely handle job execution scheduling.
How has this been tested?
I have tested the changes locally by running the cron job and ensuring that the webhookService properly handles errors through the try..catch block. Additionally, I improved unit tests.

It's a bit confusing that we have methods to process escrow completion in webhook service. IMU webhook is for working with webhooks, not to have escrow completion or payments logic.
However, if we move aforementioned logic to EscrowCompletionService - we might get circular dependency between it and webhooks service due to:

processPendingIncomingWebhooks creates escrowCompletionTracking entities
processPaidEscrowCompletion creates outgoing webhooks
So we might need to find a workaround for that, probably by splitting incoming/outgoing webhooks services

Yeah, I thought about that, I ran into a cyclic dependency issue where the Escrow module uses the Webhook module, and the Webhook module uses the Escrow module. I will figured out how to solve it.

Comments were resolved and unit tests were improved @dnechay


onWire called with undefined address when the peer is a web peer

I use the event onWire (for a bittorrent extension) and I found out that the 'addr' parameter is 'undefined' when the peer connected is a webseed.
I have also seen in the code : "Sometimes RTCPeerConnection.getStats() doesn't return an ip:port for peers" which means that in that case 'addr' is also 'undefined'.
I guess bittorrent extensions are not made for webseed. But how should we know which is which? (in my case I just "wire.use" in all cases)
Moreover, if we want to know which url the webseed is, we can't.
I think webtorrent should provide the web seed's url in 'addr' field but it may break other extensions code (which may not expect an url but ip:port)
We can check afterward if 'addr' is an url or ip:port to determine if it's a web seed or not.
If you think it's safe or if you have a better way to fix this, I can make a PR.
Tested with webtorrent 0.98.15 but it was also the case with older versions.
npm 4.4.4 on linux (debian) on Firefox 52b

Web peer > URL? Do you mean webseed?
A WebRTC Peer doesn't have a url.

Do you mean webseed?

Yes ! sorry, I have updated my message.

Eventually we may refactor the web seed implementation so that they don't use the same wire interface as normal peers. If that happens then there would be no 'wire' event for web seeds.
However, in the meantime, you can detect the type of wire by checking the wire.type property. If you got a web seed, then wire.type === 'webSeed'.
So, you can either check this property inside your bittorrent extension, or you can just skip calling wire.use() depending on the value of wire.type.
Cheers!


Facebook Community Bot Messages

I've got like 100 messages in my inbox saying:
"Thank you for reporting this issue and appreciate your patience. We've notified the core team for an update on this issue. We're looking for a response within the next 30 days or the issue may be closed."
Are these repeated messages really necessary or helpful?  Especially since this project is so actively maintained.
I can certainly filter them out, but why force thousands of people to filter them when you could just not send them.
Thanks.

I apologize for this. Unbeknownst to me, the open-source bot had a well-intentioned change recently that resulted in this noisiness. I will make sure this feedback is carried on to the responsible team.

Thanks.  Just FYI, I got another batch of 20 or so of these all received at 11:03am today (Pacific Time).

Thanks for letting me know. I got them as well and the team responsible for the bot is trying to make it more helpful and less noisy.


Fix deprecated use of getMock() on tests

Hi,
The use of the getMock() changed on PhpUnit from 5.4.0 version, so I changed the use of this object to the "new way" to fix all the warnings messages on tests executions.
Regards!

Hello?? ;)

Hi. Sorry about that. Can you rebase on to 0.7.x-dev please.


Don`t print warnings in production

https://github.com/KaTeX/KaTeX/blob/a51dc4b0727dad43187e8cf006cf1aeb32cb4de3/src/buildCommon.js#L82
Have you plans to implement this functionality? There are a lot of warnings about symbols like № in production, so that would be very helpful :)
Seems that the condition process.env.NODE_ENV !== 'production'  should be ok for this.

Could you open PR for this? It would increase the chance of it being fixed.

I think the main question is what the behavior should be. Perhaps this should be part of the existing strict system, which defaults to warnings but can already be turned off? That should be easy to do.

Maybe we should exclude the warnings from the minified build.


[FEAT]: Readme Format Script

Feature Request: Readme Format Script
What is the feature ?
The feature is that you don't have to change anything in the readme again because it will automatically generate the readme, and auto format the length of the columns, since it was starting to get a lot stacked.
What changes ?
The readme icons will be generated by hundreds (1-100, 101-200, etc)
Help needed ?

[x] Fix the Padding

I need to know what you guys think about it, can anyone else help me about it ?
thanks

I did something similar to this on my fork's Main Branch, I ended up well not really scrapping it but thought it might be too much for the page.  so I stopped working on it. The markdown still didn't look too pretty. but it was working, I ended up just writing a python script for it and creating a workflow.

@ItsJoshBrown I decided to use some scripting language instead of python or something else, because it would maybe make people install things that they don't want. So to make that easier, just running a script that you don't have to install the interpreter or a compiler or something like that, is cool.

That's cool yeah, I think it will be a good addition. That's why I didn't open up an issue about it to see if you wanted something like that. I wasn't pleased with it 100%. More or less, I just wanted to try out some workflow stuff since I've never really done anything with them before. xD

@LelouchFR since this PR goes forward what about create a new github action to run auto the script after a PR merge?

@LelouchFR @ItsJoshBrown since this PR goes forward what about creating a new GitHub action to run auto the script after a PR merge? This will prevent dealing with multiple platforms or looking if someone ran the script before merge a PR

The thing is that, I don't really know what could possibly happen if I create an action about it. Wouldn't it create a commit ? (and who would be the creator of the commit and some things like that ?)

@LelouchFR @ItsJoshBrown since this PR goes forward what about creating a new GitHub action to run auto the script after a PR merge? This will prevent dealing with multiple platforms or looking if someone ran the script before merge a PR

The thing is that, I don't really know what could possibly happen if I create an action about it. Wouldn't it create a commit ? (and who would be the creator of the commit and some things like that ?)

You could deal in two ways:

The action create a new PR and automerge (will generate two commits, the merge commit and the script output)
The action setup and use Git with your credentials (be safe, you just could add your Git token as a secret in repository so anyone will have access) and the script output will be ran and commited by "you"

That's sort of how I set mine up. I set it up to just submit a PR as github actions bot, but mine just did it automatically vs waiting on the PR to make sure that was first merged in before generating it, which probably wouldn't be that great in the grand scheme of things.

hmm, I may help. but i hope it won't fail like the fiber rewrite attempt :skull: (i still dont get what was wrong with it, it literally worked fine!!)

hmm, I may help. but i hope it won't fail like the fiber rewrite attempt 💀 (i still dont get what was wrong with it, it literally worked fine!!)

No worries, every help is good !

@ItsJoshBrown By looking at your workflow if I understand that right, it opens a pull request on push ? If I think right, we could do that, after someone opens a PR, there's a pull request comming in for the readme and after merged can be merged in main. What do  you think about that ? or is there just a way, like @eng-gabrielscardoso said, (if I understood that right) where I (my token) commits on someones Pull Request for the readme ?

@ItsJoshBrown By looking at your workflow if I understand that right, it opens a pull request on push ? If I think right, we could do that, after someone opens a PR, there's a pull request comming in for the readme and after merged can be merged in main. What do you think about that ? or is there just a way, like @eng-gabrielscardoso said, (if I understood that right) where I (my token) commits on someones Pull Request for the readme ?

Yeah, that's what it does, when someone submits a PR it runs and creates a new PR for the readme update. I don't think my action is 100% correct. I was pretty much just following what I could find online to set it all up. I've never set up an action before and wasn't too happy with it. the markdown didn't look too good, at least with spacing and what not. I considered just doing it in HTML at least then it wouldn't look too bad but would pretty much double the amount of lines.
From reading online there is a way to do it only when a PR is merged to make it run and update the readme without a PR, I just didn't dive to deep into it and wasn't able to get it working. Above my current skill level xD

https://github.com/LelouchFR/skill-icons/pull/115
waiting for approval...

@hawl1 @ItsJoshBrown @eng-gabrielscardoso I think I got it to work !

@hawl1 @ItsJoshBrown @eng-gabrielscardoso I think I got it to work !

yay!


Fix for metadata download bug

Fix for #235 and #249

Fix worked for me in a simple test case:
kaggle datasets metadata "ronitf/heart-disease-uci"

Please merge, I still have this error on version 1.5.12.
Where the current date is 2021-03-20.


Fix: ensure onchain values uptodate in join/exit flows

Description
We were refetching the pool query every 1 minute in the join/exit flows. This was using the API, but the API pool data can be up to 5 mins old. This PR replaces that query in the join exit flows for a pool decoration query which takes the existing pool object and simply fetches and updates the onchain values every 20s.
Type of change

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Dependency changes
[ ] Code refactor / cleanup
[ ] Documentation or wording changes
[ ] Other

How should this be tested?
Quite difficult to test without logging out the pool object everytime the query runs and looking for updated onchain values.
Visual context
n/a
Checklist:

[x] I have performed a self-review of my own code
[x] I have requested at least 1 review (If the PR is significant enough, use best judgement here)
[x] I have commented my code where relevant, particularly in hard-to-understand areas
[x] If package-lock.json has changes, it was intentional.
[x] The base of this PR is master if hotfix, develop if not

Closing in favour of hotfix #2938.


[Request] Add missing providers logos

According to version version 0.0.52 and this issue:
https://github.com/elgatito/script.elementum.burst/issues/221
These are the providers that doesn't have a logo:
Some of them are logos that I edited by myself.
One of them doesn't have a logo at all.
Two of them doesn't work.
torrentgalaxy (remember to fix the typo "torrenthalaxy"" in "providers.json".
bitnova - V
filetracker - V
ilcorsaroblu - V
ilcorsarored - Site is not working
iptorrents - V
itorrent - Doesn't have a logo
mvgroup - V
nitro - V
skytorrents - V
torrentgalaxy - V
torrentz2k - V
worldwidetorrents - Site is not working
zip file with the missing logos:
https://f2h.io/oxykx9o35517

@burekas7 updated icons with 0.0.53. Thanks

@elgatito
I fixed the icon dimensions to 256x256 because the logos are distorted in the results window.
This is the new zip file for them:
https://f2h.io/03kjik80jm7p
But I don't think you have to make a new release for now,
It will be updated in the next release.


What happened to the viewing of songs?

i used to be able to come in and look through the newest all the way too the end if I so chose. which is a lot of pages. and I honestly loved checking back every once and awhile and just checking whats there. it also introduced me to a whole bunch of songs I never knew existed.
now on Newest, top played ect. I can go to page 6 then there is no next page button. all I can really do is just search. which I don't even know what I want or it doesn't exist half the time. I just liked scrolling through and finding new stuff. is this a issue or was it purposeful ? because I really don't like this.

That was not intentional.
as a workaround you can use https://beatsaver.com/browse/newest/100 (you will missing 10 songs).
this is most likely a side effect from the top100 caching i did a few weeks ago

the new release will "fix" this issue until a real paging is in place


feat(response-transformer): added support for json_body rename

Summary
detail here: https://github.com/Kong/kong/discussions/12824.
Checklist

[x] The Pull Request has tests
[x] A changelog file has been created under changelog/unreleased/kong or skip-changelog label added on PR if changelog is unnecessary. README.md
[ ] There is a user-facing docs PR against https://github.com/Kong/docs.konghq.com - PUT DOCS PR HERE

Sorry, I don't know how to fix the following error from busted. I trying to figure it out but I've made no progress.
FAIL spec/02-integration/02-cmd/10-migrations_spec.lua:129: kong migrations #off bootstrap always reports as bootstrapped
spec/02-integration/02-cmd/10-migrations_spec.lua:131: Expected objects to be the same.
Passed in:
(number) 1
Expected:
(number) 0

Hey @bungle. Can you help me approval this workflow?
I added new fields to removed_fields.lua and added a test for this.
Thank you so much.

Hey @chronolaw, I read the error logs of the test runner, but I didn't find anything related to my changes. could you help me with that?

Hey @chronolaw, I read the error logs of the test runner, but I didn't find anything related to my changes. could you help me with that?

Some test cases are flaky, rerun the tests can make them green.

@samugi @jschmid1  could you help to take a look at this PR?

closing was unintentional! I intended to resolve conflicts but the force-push resulted in the PR to auto-close

closing was unintentional! I intended to resolve conflicts but the force-push resulted in the PR to auto-close

closing was unintentional! I intended to resolve conflicts but the force-push resulted in the PR to auto-close

So I should start a new PR？

@zhongweikang reopened here: https://github.com/Kong/kong/pull/13131
so sorry about my mistake :( and thank you for the contribution!


Error thrown with message "Cannot instantiate interface Auryn\Injector"

I Have error in my project, everything looks fine, I seem not to understand where it it coming from, this is the error message i get,
Error thrown with message "Cannot instantiate interface Auryn\Injector"
This is my file
`
declare(strict_types = 1);
//namespace Createspace;
require __DIR__ . '/../vendor/autoload.php';

$injector = new \Auryn\Injector;

$injector->alias('Http\Request', 'Http\HttpRequest');
$injector->share('Http\HttpRequest');
$injector->define('Http\HttpRequest', [
	':get' => $_GET,
	':post' => $_POST,
	':cookies' => $_COOKIE,
	':files' => $_FILES,
	':server' => $_SERVER,
]);

$injector->alias('Http\Response', 'Http\HttpResponse');
$injector->share('Http\HttpResponse');

return $injector;`

if someone has encountered such error, Help is needed, I appreciate

Auryn\Injector isn't an interface, which version are you using?

Yeah... @Chamberlainfrancis you would have to be using a 5+ year old version (commit 44f7836, from June 2014, at the latest) to get that error. Download a newer version of Auryn.

I think this should be answered, so closing. If not, just respond.

@garrettw I am very Grateful, everything now working as its suppose to


Build; AAVE V3 Ethereum

AAVE V3 Launches on Ethereum
Announcement: https://twitter.com/AaveAave/status/1618903037761945601?s=20&t=7oZoa40RNUXJPNYtSm7IYQ
Need New Subgraph for AAVE V3.
Can deploy current schema on other chains and happy to QA.

PR: https://github.com/messari/subgraphs/pull/1653

passed QA awaiting code review


Missing tray icon - elementary os

The player's sys tray icon is missing on my Elementary Freya. As neither the launcher nor the listing in the sound menu indicator will recall the player I have no means of showing the minimised window. However, I can still control playback from the sound indicator menu.
The tray icon is present and works just fine on my Ubuntu 14.04. Though I frequently mistake it for the near-identical Google Music Manager icon. Might it be a good idea to give the user the option to change the colour of the player's icon?

Can you please raise this as a generic "tray icon doesn't work on Elementary Freya" issue on https://github.com/atom/electron/issues

This issue has been fixed by this PR https://github.com/electron/electron/pull/7319 merged into the newest version of electron https://github.com/electron/electron/releases/tag/v1.4.2


Fix issue #10

Fix issue #10 , add an example to playground.
Hi Robert Soriano,
Thanks for your vue-winbox code, it helps me a lot, but I  get #10 problem too. After debugging and testing, I solve it. HaHa.

Nice. I'll check it out asap!

Hi! :) Is this available now? I am also experiencing this issue. See here: https://github.com/wobsoriano/vue-winbox/issues/14


Make services API public

:+1:

@nathansobo raised the concern that if we make the ServiceHub public, we won't have a way to figure out a package's provided or consumed services without activating the package. We could have some alternative scheme where the package's package.json file somehow declares a list of provided and consumed services. One possibility:
package.json:
{
  "providedServices": {
    "autocomplete-provider": ["0.2.0", "./lib/order-pizza.coffee"]
  },
  "serviceDependencies": {
    "status-bar": ["^0.3.0", "./lib/init-status-bar"]
  }
}

order-pizza.coffee:
module.exports =
  placeOrder: ->
    # provide service

init-status-bar.coffee:
module.exports = (statusBarService) ->
  # use the service

  new Disposable ->
    # stop using the service

I'm guessing this is too complicated. How important is it to be able to determine a package's service relationships statically? It could allow us to do interesting things like automatically install dependent packages.

@maxbrunsfeld I'd be down for this design, but I'm thinking it should look like this:
package.json:
{
  "serviceProvisions": {
    "order-pizza": {
      "0.2.0": "./lib/order-pizza.coffee"
    }
  },
  "serviceDependencies": {
    "status-bar": {
      "order-pizza": "^0.2.0"
    }
  }
}

With this design, packages would still call atom.services.consume in code with a callback on activate. If we didn't like that we could point to a path in the dependencies hash and combine the service name and version into a single string like<EMAIL_ADDRESS>My big question is whether we should/could still offer a programmatic interface to atom.services.provide. Do we always want services to be offered statically? What if a package wants to add and remove services dynamically? Perhaps we hold off on that case until we see a compelling need.

I think if a package provided services dynamically, it could provide them through an initially static service. For example:
package.json:
{
  "serviceProvisions": {
    "query-something": {
      "0.2.0": "./lib/query-something.coffee"
    }
  }
}

query-something.coffee:
module.exports =
  querySomething: (somethings...) ->
    # Sets up a service for each something that can then be called
    #   atom.services.provide 'query-something.something1', '0.2.0',
    #     etc etc etc

This would mean that one would have to store off the object that one was going to pass to atom.services.provide so it could be dynamically extended, but that doesn't seem too hard. I think that this pattern could be documented for people to use if they want to provide dynamic services.

I like the idea of having the services registered via package json so that package dependencies can be located.  A couple things on this.
In https://github.com/atom-community/autocomplete-plus/tree/singleton-autocomplete-manager @joefitzgerald and I are working on implementation that does a many to one sort of service dependency.  We are requesting "autocomplete:provider-api" services, and then doing requests for suggetions to the provided services.
In these many to one cases could we could perhaps offer up suggestions in the install list for packages that provide the dependent service.  We could also list packages that implement the services on the package info page, so that authors would not need to manually maintain lists like in https://github.com/AtomLinter/Linter/blob/master/README.md
When we consume services, maybe we should do some automatic binding as is suggested for the "serviceProvisions" above.
"serviceDependencies": {
    "status-bar": {
      "order-pizza":  {
        "^0.2.0": "registerPizzaProvider"
        "~0.1.0": "registerLegacyPizzaProvider"
    }
  }
}

In the main package you would then implement registerPizzaProvider and registerLegacyPizzaProvider as methods that are called when a serviceDependency is located.  It  would execute the consume for the services when a package is activated, and dispose the consumer on package deactivation.

I would definitely like to retain programmatic access for registration of consumers and providers. The primary reason: in go-plus I allow my users to flip a config flag indicating they would like to have my autocomplete-plus provider activated, or deactivated. If I can only express service dependencies in package.json, I can't provide a way to toggle the feature associated with the provider registration.

I had some earlier comments about that any resolution to this issue should resolve.  Just for reference check out #2412

@maxbrunsfeld @nathansobo For the schema, I think that it should satisfy the following design requirements:

Is namespaced with atom so it is does not conflict with other properties in the "npm namespace."
Multiple providers can be specified for a service.
Service definitions have room to declare associated metadata.

  "atomServiceProviders": {
    "nameOfServiceProvider": [ // There are two providers for this keyPath.
      {
        "name": "JS Autocomplete Provider", // For debugging? For display in Preferences?
        "version": "0.2.0",
        "path": "./lib/js-autocomplete-provider.js",
        "config": {
          // Not 100% how this will be used, but could be a good escape hatch later.
        }
      }
      {
        "name": "CSS Autocomplete Provider",
        "version": "0.2.0",
        "path": "./lib/css-autocomplete-provider.js",
        "config": {
        }
      }
    ]
  },

I think an important question is whether a initializing a service requires activating the package that contains it (I want to be sensitive to the startup time of Atom, and some service providers may be appropriate to use before package activation). Maybe a provider specifies whether activation is required in its metadata? And is there any risk of introducing circular dependencies if activation is required? Presumably it's no worse than ordinary circular dependencies in CommonJS.
In terms of the ergonomics of ServiceHub.consume(), personally, instead of passing a callback that receives providers one at a time, I would rather it return a Promise that contains an array of providers. As a consumer, I would rather know what my array of provider options is up front rather than "waiting to see" what gets registered in the future. Admittedly, this would require a separate API for registering a listener on changes to the space of providers for a (keyPath, versionRange) tuple.
@joefitzgerald provides a good example of why developers should also be able to register service providers dynamically. Though consumers of service providers (for convenience) may end up implementing services that expect all providers to be declared statically. For example, if consume() returned an array as I described, I would probably default to implementing a consumer as calling consume() once and being done with it. Maybe it's bad to encourage that behavior.

@bolinfest,
I really feel like services shouldn't be registered unless a package is activated.  Just as packages should avoid doing work outside of activation, services shouldn't be isolated behind their containing package being active.
As for the consuming providers via promise, that would enforce a pattern of use that would disallow @joefitzgerald's dynamic registration.   In order to resolve the promise we would need a known list of services we are expecting, and we would not necessarily be getting a dynamically registered service.  That said, I do think some methodology to efficiently retrieve all active services of a particular version would be nice.
I like the inclusion of meta data about the service, could have things like short and long descriptions that would be shown in the package list when searching for implementations of a given service.

In go-plus I allow my users to flip a config flag indicating they would like to have my autocomplete-plus provider activated, or deactivated

@bolinfest @joefitzgerald I'm reluctant to add both static and dynamic service registration to the API right away.  It seems to me like autocomplete-plus and/or go-plus could work out a solution to this problem without dynamic service registration. For example, could the autocomplete-provider in go-plus be extracted into a separate package that can simply be enabled or disabled?

I really feel like services shouldn't be registered unless a package is activated. Just as packages should avoid doing work outside of activation, services shouldn't be isolated behind their containing package being active.

I agree with @park9140 here.

I would rather it return a Promise that contains an array of providers.

@bolinfest I think the API needs to acknowledge that packages could be activated or deactivated at any time, so there's no single moment in time where all the providers for a given service are known to be available. In my mind, the current callback-based approach is better for that reason.

I might like @park9140's idea of specifying method names rather than files. This would allow service hooks to share data with the main module with less boilerplate:
In the package.json:
{
  "serviceProvisions": {
    "order-pizza": {
      "description": "Displays a GIF of a piping-hot Pizza",
      "versions": {
        "0.2.8": "orderPizza",
        "0.1.3": "orderLegacyPizza"
      }
    }
  },

  "serviceDependencies": {
    "status-bar": {
      "versions": {
        "^0.2.0": "manageStatusBar",
        "^0.1.0": "manageLegacyStatusBar"
      }
    }
  }
}

In the main module:
module.exports =
  activate: ->
    # ...

  orderPizza: ->
    # ...

  manageStatusBar: (statusBarService) ->
     # ...

I think this looks good. It achieves the following in a pretty clean way:

Each package can provide multiple versions of multiple named services.
Each named service can be associated with a description and potentially other metadata in the future.
Each package can depend on multiple version ranges of multiple named services.

Given the exposure of confusion around activationEvents recently, see this topic and this topic on Discuss for more details, should services be implicitly considered activation events? In other words, if someone calls a service ... should the package that provides that service be activated if it is installed?

In other words, if someone calls a service ... should the package that provides that service be activated if it is installed?

I think that makes sense. Also, it's activationCommands now.

Great! Other than that, I agree with @maxbrunsfeld's proposal too. I think it is quite elegant. One question ...
Let's say I have a package, foo-bar, like the one in @maxbrunsfeld's proposal:
{
  "serviceProvisions": {
    "order-pizza": {
      "description": "Displays a GIF of a piping-hot Pizza",
      "versions": {
        "0.2.8": "orderPizza",
        "0.1.3": "orderLegacyPizza"
      }
    }
  },

  "serviceDependencies": {
    "status-bar": {
      "^0.2.0": "manageStatusBar",
      "^0.1.0": "manageLegacyStatusBar"
    }
  }
}

What is the expected behavior in the following situations when I install or upgrade foo-bar?

status-bar is not installed
status-bar v0.0.5 is installed
status-bar v0.1.5 is installed
status-bar v0.2.2 is installed

Is the expected behavior to always install/update to the latest version of status-bar that is compatible with the version/service dependencies? Will we issue a warning if someone attempts to update to a version of status-bar that will break a service dependency?

Why is there such a reluctance to having a programmatic API? There as a litany of use cases that will pop up that would be served by programmatic use, and I don't understand why we're moving to config-only registration.

One of the things that you and others have requested @joefitzgerald is a method of specifying package dependencies. The configuration-based registration does not have to be a config-only registration, but it does make package dependencies accessible at install/upgrade time ... whereas a programmatic-only approach does not.

I am very much for a way to specify package dependencies in config. But I think we're conflating the notion of package dependencies and services. I might require autocomplete-plus and need it installed and provide a service to it.
I might also provide a service for something that will be optionally used only if that package is installed.
It's possible that we're over-complicating both aspects by conflating them.

There as a litany of use cases that will pop up that would be served by programmatic use.

@joefitzgerald Could you expand on that? I'm open to arguments for why this feature needs to be added to core right away, but so far I don't see a good reason to add it and commit to supporting it indefinitely. In my mind, it's a perfect candidate for deferral; it is completely additive and doesn't affect the design of our config-based system.

By "config-based" do we mean statically specified in the package.json?
The main reason I favor declaring service dependencies rather than package dependencies is that it provides flexion points in the ecosystem by allowing other packages than the original service provider to step in and implement a named service, so long as they don't change the API. I can't think of a way I'd want packages to interact other than via services, so it seems redundant to me to separate the concepts right now. But my thinking has changed multiple times on this issue, so I'm open to being convinced.

@joefitzgerald,  even with the config based method we could implement hooks in order to dynamically enable/disable the provider.  When the services are automatically enabled by the config we could register the service disposable onto the main module so it could be dynamically torn down.  We would also need a simple way to re-enable the service as declared in the config.

Going through the entire API and deprecating things I once thought were good ideas has made me more conservative.
Maybe we keep the atom.services global and just keep it private and don't advertise it. My goal would be to only have people that a) have a real need and b) are willing to roll with the punches use it. Not sure if that's a sound strategy sociologically.

Well for what it's worth, the atom.services global is brilliant and it unwinds a ton of hackery via atom.packages whereby packages try to do stuff with other packages. It has been a true pleasure interesting autocomplete-plus with it. I'm still unsure why there's hesitance around it? What danger lies here?
Loosely coupling the package dependencies is far preferable to the current technique.
My advice is to separate the notion package dependencies (I.e. I am the author of go-plus and I require users of go-plus to have autocomplete-plus installed) from the notion service providers (I.e. I optionally provide this service if someone has a consumer that knows what to do with it).
I might want to specify a package dependency without providing a service. I might want to provide a service without specifying a package dependency (maybe there are 5 options of consumers?).

My personal take:

Service dependencies as opposed to package dependencies is a great idea
So long as atom.services is available and used by Atom for sensible things, I'm not too worried about whether it is classified as Essential, Experimental or Private. (I'd like to see it used by the status-bar package, since I have a couple status bar dependent packages.)

Making this available to the enthusiasts in the community I think will be a big win.
I think the rest of it can be shaken out over time.

I might want to specify a package dependency without providing a service. I might want to provide a service without specifying a package dependency (maybe there are 5 options of consumers?).

It seems like the quoted statement has the relationship inverted. I'm thinking that a package dependency will be expressed as a service dependency.
By having this information statically available, we can present the user with a list of 5 packages that provide an autocomplete view when they install the go completion provider package. If we have to execute JavaScript to find out the relationship, all of a sudden we can't be as helpful.
I admit the programmatic interface is a bit nicer in some ways, but I think it's nicer by ignoring an important aspect of the problem, which is analyzing the relationship between packages in order to make the user experience better. That's what I'm worried about by presenting an API that we can't efficiently analyze. I don't want you to install the go completion provider without warning you that it needs autocomplete-plus.
It's like a Settlers of Catan expansion pack. They warn you loud and clear on the box that it can't be played without the original game.


Prevent closing the window if there are unsaved changes

Is there any way to prevent the window close if we press the X window button and there are buffers not saved?
Ideally this could trigger a confirmation message before closing similar of :conf qa<CR>

Yeah, it's possible if the close event is overridden and we can send a confirm qa, right now the spawned Neovim process just gets terminated so it quits without saving.

Yes, It works perfect
just for the record I tested in Manjaro (Arch)


13 better editing

Made a simple change to pull up a dialog for item editing on creation. Also, fixed a bug where a new item's value wouldn't be submitted to the database.

This is dependent on issue #12 Check List


[LTD] Bump apache-airflow version to address security vulnerability

Change description
Bump apache-airflow version to 2.1.3 (latest stable version) to address a security vulnerability flagged by dependabot

thanks @dgnball


Add lambda to frontend

Update chain info
Update ibc info
Add token icon
Create LAMB-ATOM pool and submit info  tx

@JeremyParish69 Hi Jeremy. This is the update for lambda to frontend, please view and merge. Thank you very much!

@jonator Hi Jonator, please merge, thank you so much!

@JeremyParish69 Hi Jeremy, what should i do next to get this PR merged, we have created pool but can't not show the correct denom in frontier.

@JeremyParish69 @jonator  https://frontier.osmosis.zone/pool/826   OSMO/LAMB pool created!


QUESTION: Any plans to support databases other than DynamoDB?

Hey @janaka thank you for your questions!
We're currently working on Serverless v1 and are about to update our old repos. We'll consider your feedback when we start the update process for this one (PRs are welcomed! :-))

@janaka we shipped a version for v1 a couple months back, I'm curious what you think about it 👍

Hi Nik, I'm personally not working on anything Lambda related at the moment but have been following the release at a feature level. Those I know who have been using it have been pretty happy with improvements. Also loving the pace of release. Keep up the good work.

Thanks @janaka


WIP: Ability to access record key and value fields and record timestamp

For discussion to solve #28
It adds the ability to reference key, value or general record fields (timestamp in the first run) in the RECORD_FIELDS parameter.

Hello @baunz,
Thanks for PR! We really appreciate it!
I am going to have review soon.

Hi @morazow
take your time, I want to add some more tests and this is really only a draft...I will update the status once it reaches a state more complete

Hello @baunz,
Thanks for the changes!
Are you finished working with this pull request? Please feel free to make it ready, then I can start reviewing it.

Hi @morazow
it is review ready especially as I need some input on the structure of the documentation. Should I rebase the branch against main before you review it?

Hey @baunz,
Great! Yes, please pull the latest commits from main, there may be conflicting changes.

It'S rebased now. I originally tried to include @jwarlander s finding with the null values in this pull request, this it why his code "disappeared", the test is still there and is green..

Thanks @baunz, I am starting reviewing it.

I have updated user guide. I think it is better if I directly change simple suggestions.

Added some refactoring to tests to keep it consistent.

Hey @baunz,
Thanks a lot for this PR!
I have added some changes from my side. It looks good from my side. @jwarlander please have another look, then we can merge this.

Hey @morazow and @jwarlander ,
many thanks for your work, I know it's hard to go through such a big thing. Let's hope the next PRs will be more "cosmetic"
Johannes


Failed orders but payment going through

I've forced django-oscar-paypal onto django 4.2 with 24e1477f9b7dd8d020b4b14c48d34e0f4e9b2136 but am now finding about 20% of my transactions are failing to create an order, yet still making a payment in PayPal.
I've managed to get a screenshot of the error message:

Grateful for ideas of where to start to try and debug as it keeps costing my PayPal fees to refund erroneous transactions and I'm then having to recreate the original order manually.

Having dug, I think this is a state problem with old django-oscar carts being in the open state despite having been used for previous orders. See https://github.com/django-oscar/django-oscar/issues/4246.


A question on time and memory requirement of a helper script "database_download.py"

Thank you for a great tool!
Since I'd like to use the pre-built GTDB R202 database, I'm trying using the helper script as below.
./util_scripts/database_download.py -t 4 -r 202 -d kraken2 metadata taxdump phylogeny -- custom_dbs
This command has been working without any errors, but it seems to require >48 hrs of running time and >200 Gbp of memory.
Is this usual?
If not, are there any ways to reduce running time and/or memory usage?
Thanks in advance.

It must be loading files into memory prior to writing. I will have a look

OK, I've updated the code so it should stream the data in chunks instead of loading it all into memory. Reopen if there's still a problem

Thank you for a quick update!!
But unfortunately, I've encountered errors during running the updated code.
Below I attach the commands and log files. One is from Python2 and the other is from Python3. I tried both and the error messages were different between Python2 and Python3.
(Python2 command; default Python version 2.7.17)
nohup ./util_scripts/database_download.py -t 4 -r 202 -d kraken2 metadata taxdump phylogeny -- custom_dbs > dw2.log 2>&1 &
(Python3 command; version 3.8.0)
nohup python3 ./util_scripts/database_download.py -t 4 -r 202 -d kraken2 metadata taxdump phylogeny -- custom_dbs > dw3.log 2>&1 &
Python2 log
-----------------------
nohup: ignoring input
2022-02-08 10:18:25,385 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:18:27,137 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2 HTTP/1.1" 301 275
2022-02-08 10:18:27,466 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/ HTTP/1.1" 200 5039
2022-02-08 10:18:27,518 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:18:27,524 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:18:27,528 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:18:27,531 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:18:28,876 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database100mers.kraken HTTP/1.1"<PHONE_NUMBER>94
2022-02-08 10:18:28,878 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database.kraken.md5 HTTP/1.1" 200 50
2022-02-08 10:18:28,878 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database.kraken HTTP/1.1"<PHONE_NUMBER>1507
2022-02-08 10:18:28,879 - File written: custom_dbs/GTDB_release202/kraken2/database.kraken.md5
2022-02-08 10:18:28,880 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:18:28,883 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database75mers.kraken HTTP/1.1"<PHONE_NUMBER>69
2022-02-08 10:18:30,234 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database75mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 10:18:58,453 - File written: custom_dbs/GTDB_release202/kraken2/database75mers.kmer_distrib
2022-02-08 10:18:58,463 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:18:59,814 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database150mers.kraken HTTP/1.1"<PHONE_NUMBER>59
2022-02-08 10:29:26,042 - File written: custom_dbs/GTDB_release202/kraken2/database100mers.kraken
2022-02-08 10:29:26,048 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:29:28,994 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database150mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 10:29:42,714 - File written: custom_dbs/GTDB_release202/kraken2/database150mers.kmer_distrib
2022-02-08 10:29:42,724 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:29:44,083 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database200mers.kraken HTTP/1.1"<PHONE_NUMBER>18
2022-02-08 10:34:04,063 - File written: custom_dbs/GTDB_release202/kraken2/database150mers.kraken
2022-02-08 10:34:04,067 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:34:05,702 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database200mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 10:34:17,371 - File written: custom_dbs/GTDB_release202/kraken2/database200mers.kmer_distrib
2022-02-08 10:34:17,380 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:34:18,740 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database250mers.kraken HTTP/1.1"<PHONE_NUMBER>52
2022-02-08 10:39:35,171 - File written: custom_dbs/GTDB_release202/kraken2/database200mers.kraken
2022-02-08 10:39:35,175 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:39:37,054 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database250mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 10:39:52,310 - File written: custom_dbs/GTDB_release202/kraken2/database250mers.kmer_distrib
2022-02-08 10:39:52,319 - Starting new HTTP connection (1): ftp.tue.mpg.de
2022-02-08 10:39:53,667 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/hash.k2d HTTP/1.1"<PHONE_NUMBER>11800
Traceback (most recent call last):
File "./util_scripts/database_download.py", line 124, in
main(args)
File "./util_scripts/database_download.py", line 119, in main
args.output_dir, args.threads)
File "./util_scripts/database_download.py", line 101, in dl_files
pool.map(func, data.find_all('a'))
File "/usr/lib/python2.7/multiprocessing/pool.py", line 253, in map
return self.map_async(func, iterable, chunksize).get()
File "/usr/lib/python2.7/multiprocessing/pool.py", line 572, in get
raise self._value
UnicodeDecodeError: 'utf8' codec can't decode byte 0xb6 in position 0: invalid start byte
2022-02-08 10:39:53,672 - Starting new HTTP connection (1): ftp.tue.mpg.de
-----------------------
Python3 log
-----------------------
nohup: ignoring input
2022-02-08 10:58:08,598 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 10:58:09,947 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2 HTTP/1.1" 301 275
2022-02-08 10:58:10,215 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/ HTTP/1.1" 200 5039
2022-02-08 10:58:10,271 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 10:58:10,272 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 10:58:10,274 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 10:58:10,275 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 10:58:11,621 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database100mers.kraken HTTP/1.1"<PHONE_NUMBER>94
2022-02-08 10:58:11,622 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database75mers.kraken HTTP/1.1"<PHONE_NUMBER>69
2022-02-08 10:58:11,623 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database150mers.kraken HTTP/1.1"<PHONE_NUMBER>59
2022-02-08 10:58:11,624 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database200mers.kraken HTTP/1.1"<PHONE_NUMBER>18
2022-02-08 11:05:43,159 - File written: custom_dbs/GTDB_release202/kraken2/database100mers.kraken
2022-02-08 11:05:43,161 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 11:05:44,515 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database150mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 11:06:15,104 - File written: custom_dbs/GTDB_release202/kraken2/database150mers.kmer_distrib
2022-02-08 11:06:15,114 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 11:06:16,489 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database250mers.kraken HTTP/1.1"<PHONE_NUMBER>52
2022-02-08 11:08:03,464 - File written: custom_dbs/GTDB_release202/kraken2/database200mers.kraken
2022-02-08 11:08:03,467 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 11:08:05,346 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database250mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 11:08:17,824 - File written: custom_dbs/GTDB_release202/kraken2/database250mers.kmer_distrib
2022-02-08 11:08:17,828 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 11:08:19,176 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/hash.k2d HTTP/1.1"<PHONE_NUMBER>11800
2022-02-08 11:09:13,231 - File written: custom_dbs/GTDB_release202/kraken2/database150mers.kraken
2022-02-08 11:09:13,236 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 11:09:14,610 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database200mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 11:09:31,377 - File written: custom_dbs/GTDB_release202/kraken2/database200mers.kmer_distrib
2022-02-08 11:14:07,300 - File written: custom_dbs/GTDB_release202/kraken2/database250mers.kraken
2022-02-08 11:14:07,305 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 11:14:08,943 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database_mers.md5 HTTP/1.1" 200 598
2022-02-08 11:14:08,945 - File written: custom_dbs/GTDB_release202/kraken2/database_mers.md5
2022-02-08 11:17:03,101 - File written: custom_dbs/GTDB_release202/kraken2/database75mers.kraken
2022-02-08 11:17:03,104 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-02-08 11:17:04,455 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database100mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-02-08 11:17:18,441 - File written: custom_dbs/GTDB_release202/kraken2/database100mers.kmer_distrib
Traceback (most recent call last):
File "./util_scripts/database_download.py", line 124, in
main(args)
File "./util_scripts/database_download.py", line 118, in main
dl_files(args.base_url, release, db,
File "./util_scripts/database_download.py", line 101, in dl_files
pool.map(func, data.find_all('a'))
File "/usr/lib/python3.8/multiprocessing/pool.py", line 364, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/usr/lib/python3.8/multiprocessing/pool.py", line 768, in get
raise self._value
File "/usr/lib/python3.8/multiprocessing/pool.py", line 537, in _handle_tasks
put(task)
File "/usr/lib/python3.8/multiprocessing/connection.py", line 206, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/usr/lib/python3.8/multiprocessing/reduction.py", line 51, in dumps
cls(buf, protocol).dump(obj)
File "/usr/local/lib/python3.8/dist-packages/bs4/element.py", line 954, in getnewargs
return (str(self),)
RecursionError: maximum recursion depth exceeded while calling a Python object
-----------

OK, this should now be fixed. It was a decoding issue. I've tested it with the kraken2 databases, and it now works. Sorry for the problems!

Hi Nick,
I'm still getting the same error after using the fixed code for database_download.py.
2022-05-05 23:07:54,059 - File written: custom_dbs/GTDB_release202/kraken2/hash.k2d
Traceback (most recent call last):
File "/home/eortiz/Struo2/util_scripts/database_download.py", line 138, in
main(args)
File "/home/eortiz/Struo2/util_scripts/database_download.py", line 132, in main
dl_files(args.base_url, release, db,
File "/home/eortiz/Struo2/util_scripts/database_download.py", line 115, in dl_files
pool.map(func, data.find_all('a'))
File "/home/eortiz/.conda/envs/struo2/lib/python3.10/multiprocessing/pool.py", line 364, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/home/eortiz/.conda/envs/struo2/lib/python3.10/multiprocessing/pool.py", line 771, in get
raise self._value
File "/home/eortiz/.conda/envs/struo2/lib/python3.10/multiprocessing/pool.py", line 537, in _handle_tasks
put(task)
File "/home/eortiz/.conda/envs/struo2/lib/python3.10/multiprocessing/connection.py", line 211, in send
self._send_bytes(_ForkingPickler.dumps(obj))
File "/home/eortiz/.conda/envs/struo2/lib/python3.10/multiprocessing/reduction.py", line 51, in dumps
cls(buf, protocol).dump(obj)
File "/home/eortiz/.conda/envs/struo2/lib/python3.10/site-packages/bs4/element.py", line 956, in getnewargs
return (str(self),)
RecursionError: maximum recursion depth exceeded while calling a Python object.
Any guidance about how to solve this? I was thinking to increase the recursion limit but I'm not a 100% sure how (also not recommended in some forums), I'm not a coding person but can modify/readapt some codes.
Thanks.
Max

@emaxortiz I can't reproduce your error. Can you please try to increase the maximum recursion limit, as described in https://stackoverflow.com/questions/31528600/beautifulsoup-runtimeerror-maximum-recursion-depth-exceeded? Let me know if that fixes the issue

Hi Nick,
Thank you so much for your quick reply and the suggestion, I'll keep that in mind. I managed to download the database "manually". Now I'm trying to include my MAGs, I'll get back to you if something is not working. Thanks.

Hi @nick-youngblut,
Unfortunately, I have come across the same error as @emaxortiz.
When I first encountered this issue, it the script ran for ~1.5 days before showing the recursion error (I forgot to see how much data downloaded). I followed the recommendation to increase the recursion depth and I upped this to 50,000 from the standard 1,000. I also increase the threads from 4 to 16. Unfortunately, this has now crashed after 3 days with the recursion error occurring after downloading ~100GB of the hash.k2d file.
Can I ask what recursion depth you are running at? Is there an alternative method to download the pre-built database?
Thanks,
Caitlin
This is the log from the latest run with 16 threads and a max recursion depth of 50,000
(struo2) [iidcsel@frgeneseq03 gtdb_preBuilt]$ /phe/tools/Struo2/util_scripts/database_download.py -t 16 -r 202 -d kraken2 metadata taxdump phylogeny -- custom_dbs
2022-07-04 12:31:23,023 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,878 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2 HTTP/1.1" 301 275
2022-07-04 12:31:24,900 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/ HTTP/1.1" 200 5039
2022-07-04 12:31:24,955 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,958 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,959 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,960 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,963 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,963 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,964 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,964 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,965 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,966 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,966 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,967 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,968 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:24,980 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database_mers.md5 HTTP/1.1" 200 598
2022-07-04 12:31:24,982 - File written: custom_dbs/GTDB_release202/kraken2/database_mers.md5
2022-07-04 12:31:24,984 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database100mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-07-04 12:31:24,996 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database200mers.kraken HTTP/1.1"<PHONE_NUMBER>18
2022-07-04 12:31:24,996 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database200mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-07-04 12:31:25,000 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database250mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-07-04 12:31:25,003 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database75mers.kraken HTTP/1.1"<PHONE_NUMBER>69
2022-07-04 12:31:25,009 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database100mers.kraken HTTP/1.1"<PHONE_NUMBER>94
2022-07-04 12:31:25,015 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database150mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-07-04 12:31:25,027 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database150mers.kraken HTTP/1.1"<PHONE_NUMBER>59
2022-07-04 12:31:25,030 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database250mers.kraken HTTP/1.1"<PHONE_NUMBER>52
2022-07-04 12:31:25,750 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/k2d.md5 HTTP/1.1" 200 129
2022-07-04 12:31:25,751 - File written: custom_dbs/GTDB_release202/kraken2/k2d.md5
2022-07-04 12:31:25,821 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/database75mers.kmer_distrib HTTP/1.1"<PHONE_NUMBER>
2022-07-04 12:31:25,903 - File written: custom_dbs/GTDB_release202/kraken2/database250mers.kmer_distrib
2022-07-04 12:31:26,092 - File written: custom_dbs/GTDB_release202/kraken2/database200mers.kmer_distrib
2022-07-04 12:31:26,412 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/hash.k2d HTTP/1.1"<PHONE_NUMBER>11800
2022-07-04 12:31:26,478 - File written: custom_dbs/GTDB_release202/kraken2/database100mers.kmer_distrib
2022-07-04 12:31:26,806 - Starting new HTTP connection (1): ftp.tue.mpg.de:80
2022-07-04 12:31:27,298 - File written: custom_dbs/GTDB_release202/kraken2/database150mers.kmer_distrib
2022-07-04 12:31:28,292 - http://ftp.tue.mpg.de:80 "GET /ebio/projects/struo2/GTDB_release202/kraken2/hash.k2d HTTP/1.1"<PHONE_NUMBER>11800
2022-07-04 12:31:35,437 - File written: custom_dbs/GTDB_release202/kraken2/database250mers.kraken
2022-07-04 12:31:36,385 - File written: custom_dbs/GTDB_release202/kraken2/database100mers.kraken
2022-07-04 12:31:38,542 - File written: custom_dbs/GTDB_release202/kraken2/database200mers.kraken
2022-07-04 12:31:41,758 - File written: custom_dbs/GTDB_release202/kraken2/database150mers.kraken
2022-07-04 12:31:46,834 - File written: custom_dbs/GTDB_release202/kraken2/database75mers.kraken
2022-07-04 12:32:09,841 - File written: custom_dbs/GTDB_release202/kraken2/database75mers.kmer_distrib
2022-07-06 19:14:43,164 - File written: custom_dbs/GTDB_release202/kraken2/hash.k2d
Traceback (most recent call last):
  File "/phe/tools/Struo2/util_scripts/database_download.py", line 138, in <module>
    main(args)
  File "/phe/tools/Struo2/util_scripts/database_download.py", line 132, in main
    dl_files(args.base_url, release, db,
  File "/phe/tools/Struo2/util_scripts/database_download.py", line 115, in dl_files
    pool.map(func, data.find_all('a'))
  File "/phe/tools/miniconda3/envs/struo2/lib/python3.10/multiprocessing/pool.py", line 364, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "/phe/tools/miniconda3/envs/struo2/lib/python3.10/multiprocessing/pool.py", line 771, in get
    raise self._value
  File "/phe/tools/miniconda3/envs/struo2/lib/python3.10/multiprocessing/pool.py", line 537, in _handle_tasks
    put(task)
  File "/phe/tools/miniconda3/envs/struo2/lib/python3.10/multiprocessing/connection.py", line 211, in send
    self._send_bytes(_ForkingPickler.dumps(obj))
  File "/phe/tools/miniconda3/envs/struo2/lib/python3.10/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
  File "/phe/tools/miniconda3/envs/struo2/lib/python3.10/site-packages/bs4/element.py", line 956, in __getnewargs__
    return (str(self),)
RecursionError: maximum recursion depth exceeded while calling a Python object

and showing the amount of data downloaded
(struo2) ]$ ll -h custom_dbs/GTDB_release202/kraken2/
total 100G
-rw-rw-r-- 1 4.9M Jul  4 12:31 database100mers.kmer_distrib
-rw-rw-r-- 1 261M Jul  4 12:31 database100mers.kraken
-rw-rw-r-- 1 6.4M Jul  4 12:31 database150mers.kmer_distrib
-rw-rw-r-- 1 338M Jul  4 12:31 database150mers.kraken
-rw-rw-r-- 1 4.2M Jul  4 12:31 database200mers.kmer_distrib
-rw-rw-r-- 1 247M Jul  4 12:31 database200mers.kraken
-rw-rw-r-- 1 3.9M Jul  4 12:31 database250mers.kmer_distrib
-rw-rw-r-- 1 247M Jul  4 12:31 database250mers.kraken
-rw-rw-r-- 1 7.8M Jul  4 12:32 database75mers.kmer_distrib
-rw-rw-r-- 1 460M Jul  4 12:31 database75mers.kraken
-rw-rw-r-- 1 598 Jul  4 12:31 database_mers.md5
-rw-rw-r-- 1 99G Jul  6 19:14 hash.k2d
-rw-rw-r-- 1 129 Jul  4 12:31 k2d.md5

@CaitlinSelway I'll look into the issue ASAP. For now, you can always use wget for downloading the files. ./util_scripts/database_download.py is just a convenience script to help automate the download proecess.

Hi Nick,
thank you for the quick reply! Unfortunately wget isn’t working due to a 502 connection refused issue.
I’ll have a try using 1 thread tomorrow. I’ll let you know if this was successful or not.
Thanks,
Caitlin

Maybe wget is configured oddly for you. You might want to check ~/.wgetrc

Thank you very much for the new release!


Use ThemeLookup for the SUI bg too

I can't exactly repro #14559. I suspect that's due to #14567 having been merged. This, however, seemed related. Without this, we'll use the App's RequestedTheme (the one that can't be changed at runtime), rather than the user's requestedTheme. That will do weird things, like make the BG of the SUI dark, with white expanders.
I think this should close #14559.

@carlos-zamora can you check this out and make sure #14559 doesn't repro anymore?

or if the fix is to apply the theme manually to the entire visual tree

probably that.... yea.  Uhg. I'll take another spin through that and find the popup root.

I'll take another spin through that and find the popup root

This might be Hard to do generically. Consider the code we use for the popups:
        auto themingLambda{ [this](const Windows::Foundation::IInspectable& sender, const RoutedEventArgs&) {
            auto theme{ _settings.GlobalSettings().CurrentTheme() };
            auto requestedTheme{ theme.RequestedTheme() };
            auto element{ sender.try_as<winrt::Windows::UI::Xaml::FrameworkElement>() };
            while (element)
            {
                element.RequestedTheme(requestedTheme);
                element = element.Parent().try_as<winrt::Windows::UI::Xaml::FrameworkElement>();
            }
        } };

Popups belong to a different XAML root than the rest of the app. So we can go up the tree from the SUI and apply the requested theme to that whole tree, but we'll never get up to the popup root from the SUI. We'd need a literal popup to get there, and that we won't have access to, till it's opened.
I'm inclined to resolve that sub-point as "meh". There may be a way to get to it, but "meh".

I'll take another spin through that and find the popup root

This might be Hard to do generically. Consider the code we use for the popups:
        auto themingLambda{ [this](const Windows::Foundation::IInspectable& sender, const RoutedEventArgs&) {
            auto theme{ _settings.GlobalSettings().CurrentTheme() };
            auto requestedTheme{ theme.RequestedTheme() };
            auto element{ sender.try_as<winrt::Windows::UI::Xaml::FrameworkElement>() };
            while (element)
            {
                element.RequestedTheme(requestedTheme);
                element = element.Parent().try_as<winrt::Windows::UI::Xaml::FrameworkElement>();
            }
        } };

Popups belong to a different XAML root than the rest of the app. So we can go up the tree from the SUI and apply the requested theme to that whole tree, but we'll never get up to the popup root from the SUI. We'd need a literal popup to get there, and that we won't have access to, till it's opened.
I'm inclined to resolve that sub-point as "meh". There may be a way to get to it, but "meh".

Could it be a part of the SettingContainer? Maybe in OnApplyTemplate()?
Regardless, I'm ok with shipping this as-is. But we should have a bug tracking it imo :/

Could it be a part of the SettingContainer? Maybe in OnApplyTemplate()?

There's no popup when the template is applied; it only exists when the user interacts. I think this is a very deep well and a big waste of engineering effort to fix honestly. XAML has let us down. :)

Could it be a part of the SettingContainer? Maybe in OnApplyTemplate()?

There's no popup when the template is applied; it only exists when the user interacts. I think this is a very deep well and a big waste of engineering effort to fix honestly. XAML has let us down. :)

Oh right, I forgot Mike said that. Fair enough.


[17.09] qpdf: 6.0.0 -> 7.1.1

Motivation for this change
This also includes the backporting of security fixes we never ported (CVE-2017-11624,CVE-2017-11625,CVE-2017-11626,CVE-2017-11627,CVE-2017-12595,CVE-2017-9208,CVE-2017-9209,CVE-2017-9210 from 6060847)
The 7.1.1 update just ensures we are at the latest stable version. Since there is not API breakage this should be fine.
Things done

[X] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-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)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Success on x86_64-darwin (full log)
Partial log (click to expand)
fi
if [ -f doc/qpdf-manual.pdf ]; then \
	cp doc/qpdf-manual.pdf /nix/store/9dsifnbkhjvica4vjqnm0pd9gvrrbw9c-qpdf-7.1.1/share/doc/qpdf; \
fi
cp doc/*.1 /nix/store/9dsifnbkhjvica4vjqnm0pd9gvrrbw9c-qpdf-7.1.1/share/man/man1
post-installation fixup
gzipping man pages under /nix/store/9dsifnbkhjvica4vjqnm0pd9gvrrbw9c-qpdf-7.1.1/share/man/
stripping (with flags -S) in /nix/store/9dsifnbkhjvica4vjqnm0pd9gvrrbw9c-qpdf-7.1.1/lib  /nix/store/9dsifnbkhjvica4vjqnm0pd9gvrrbw9c-qpdf-7.1.1/bin
patching script interpreter paths in /nix/store/9dsifnbkhjvica4vjqnm0pd9gvrrbw9c-qpdf-7.1.1
/nix/store/9dsifnbkhjvica4vjqnm0pd9gvrrbw9c-qpdf-7.1.1

Success on x86_64-linux (full log)
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1
shrinking /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1/bin/qpdf
shrinking /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1/bin/zlib-flate
shrinking /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1/lib/libqpdf.so.18.2.1
gzipping man pages under /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1/share/man/
stripping (with flags -S) in /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1/lib  /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1/bin
patching script interpreter paths in /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1
checking for references to /tmp/nix-build-qpdf-7.1.1.drv-0 in /nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1...
/nix/store/jflfls3nfrs0674l9w0izjqz8ma7f698-qpdf-7.1.1

Success on aarch64-linux (full log)
Partial log (click to expand)
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1
shrinking /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1/bin/zlib-flate
shrinking /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1/bin/qpdf
shrinking /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1/lib/libqpdf.so.18.2.1
gzipping man pages under /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1/share/man/
stripping (with flags -S) in /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1/lib  /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1/bin
patching script interpreter paths in /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1
checking for references to /build in /nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1...
/nix/store/sqqw72bsc1z0y7w90j5fa45vapmnl8q1-qpdf-7.1.1


nix-fallback-paths seems out of date

Checklist

[x] Checked the nixpkgs master branch

[x] Checked the nixpkgs pull requests

Project name
nix search name: (well, not really a package)

current version: 2.3.11
desired version: 2.3.12
https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix currently uses 2.3.11 while the latest version of nix is 2.3.12. This leads to some slightly confusing result:
$ nix upgrade-nix
[1 copied (7.3 MiB), 1.6 MiB DL]
replacing old 'nix-2.3.12'
installing 'nix-2.3.11'
building '/nix/store/ji6k18ilp2w5ai2jyc23mhzk4x82hw8w-user-environment.drv'...
created 592 symlinks in user environment
upgrade to version 2.3.11 done

Is this intended? If not, it probably should be updated.
Notify maintainers

maintainers:
Note for maintainers
Please tag this issue in your PR.

Handled by #130538


BUG-108486 Improve org delete experience

This pr fixing BUG-108486:

you can not delete the default org
you can not delete org when it has cluster
migration script for adding org status and termination date
namedquery modifications based on active org

@attilapalfi92 deleted the unused code.


Support for "filename*" in multipart (precedence over "filename")

Reference: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition

Sorry for the multiple commits, it was a mistake due to my very recent use of merges. Only look at the modified files.

Hi @marcstern ,
Could you please have a look at the exchange here: https://github.com/SpiderLabs/ModSecurity/pull/2214
... and share your thoughts as relates to this new PR.
In brief, at the time it appeared that both nginx and Apache ignore any filename* specification. In which case if ModSecurity were to prefer that value over filename=, it could create an evasion opportunity.

@marcstern ?

Sorry, I didn't receive the notification.
Maybe Apache/Nginx don't support filename*, but some back-end applications do, so they're vulnérable to injection in filename* if it's not parsed.
From a pure security point of view, the best would maybe be to store both in the FILENAME collection, so we're sure we check everything.
On top of that, a rule checking that filename is always present when providing filename* may be a good idea. Can we find some data about this behaviour?

Unfortunately, the storage of the FILES entries is done outside the header parsing, so only one name can be set inside the existing code.
If someone has an idea to easily add all filenames, please shoot.

Indeed, this PR should be ignored.
Probably a rule to forbid a "filename*" parameter would be better, as it's no more standard.


it crashes index segments tab error in swift 2.3

I use this framework at tabor controller
It works well, but one thing is disable and crash app
when i use tabbar controller which has controllers three and five view controller each other(second view, third view)
first, tab third view and click segment third button and return my second view
and I touched five or four segment button suddenly crashed index error
I found it at SJSegmentedViewController initial problem at nsnotification
but, i can't fix it from now on...
thank you for this framework in use, I will hope this error fixed well soon ....
how can i fix it?

Hi @chojunyng ,
Thank you for using SJSegmentedView framework, we are glad to know that it's helping you!
We have resolved the above mentioned issue in version 1.1.2 and you can use this updated version with the following pod declaration in your podfile:
pod 'SJSegmentedScrollView', :git => 'https://github.com/subinspathilettu/SJSegmentedViewController.git', :tag => 'v1.1.2'


Updated Stack Configuration to Centralise Dependency Management

All stack.yaml files that needed fixing have been updated so now all subprojects build. At some point I'll likely get annoyed enough with this to write a python script to update them all from the master in shell/stack.yaml.

@mikusp are we safe to bump Luna lts to 8.16? Im asking from the perspective of Luna Empire.

We do, even 9.*. However, only one stack.yaml should be ever needed for one repo. There's no point in repeating information and I am opposed to introducing custom scripts when stack can manage it fine itself. You could even use new stack feature, extensible snapshots to better specify true dependencies https://www.fpcomplete.com/blog/2017/07/stacks-new-extensible-snapshots. There's a pull request waiting in luna-studio that can be used as an example https://github.com/luna/luna-studio/pull/792

I’d missed the news on extensible snapshots! That’s great.

Set this up to use an extensible snapshot and centralise all the configuration as much as possible! Should be far more maintainable now!

It appears that I fixed the CI, so review with intent to merge please!

Seems good to me! I'd love both @mikusp and @sylwiabr to see it before merge!

Of course!

I think I've responded to both of your feedback! Hopefully this fixes all of it, but please let me know if there are any outstanding issues @sylwiabr @wdanilo @mikusp. :)

ok, so one more thing: if there is no separate yaml file in shell directory then in build_config/stack_build.py  build function should be fixed (it should just change directory to main repository directory instead of shell folder or call directly main stack yaml)


Add a new disease to animal disease case finder (Peste des petits ruminants)

https://govuk.zendesk.com/agent/tickets/5889641
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠
Follow these steps if you are doing a Rails upgrade.

Code LGTM but there's an unrelated failure (also affecting #2714 - I wonder what's changed 🤔 )


config-linux.md: Increase the valid value of rootfsPropagation

According to the change of shared subtree.
Signed-off-by: zhouhao<EMAIL_ADDRESS>

On Wed, Apr 12, 2017 at 06:38:11PM -0700, Zhou Hao wrote:

According to the change of shared subtree.

Is that recent?  It looks like MS_UNBINDABLE is circa 2005 1, and
part of v2.6.15-rc1.  But +1 on the spec change.
 [PATCH] unbindable mounts, 2005-11-07

Looks like the JSON Schema could also use an enum.

@wking But why not use unbindable?

But why not use unbindable?

unbindable is good with me.  I just though "change" was an odd choice of words for a feature from 2005 ;).  The enum entry should update the entry in config-linux.json.

LGTM

@hqhq @vbatts PTAL

@crosbymichael PTAL

LGTM


'blitzortung' calls async_run_job, which is deprecated

please see below, and adjust accordingly?
Logger: homeassistant.helpers.frame
Bron: helpers/frame.py:188
Eerst voorgekomen: 07:46:09 (1 gebeurtenissen)
Laatst gelogd: 07:46:09

Detected that custom integration 'blitzortung' calls `async_run_job`, which is deprecated and will be removed in Home Assistant 2025.4; Please review https://developers.home-assistant.io/blog/2024/03/13/deprecate_add_run_job for replacement options at custom_components/blitzortung/mqtt.py, line 284: self.hass.async_run_job(, please create a bug report at https://github.com/mrk-its/homeassistant-blitzortung/issues
``

fixed by https://github.com/mrk-its/homeassistant-blitzortung/commit/f9021aac8383e6ce4798f1f206b5b96c9da41463


Updated with some additional features.

enhanced time output, added ETA to completion and ticks/second to output line

Might want to wrap some of those outputs in boolean flag options, or give a way to change the output order after the bar.


How can I utilize @Preview when using Android Studio?

I am fairly new to UI stuff with Kotlin and wanted to start with Jetpack Compose for Desktop now. However building the UI just by Code and rerunning the App everytime to see changes is a no go.
So I found out about this @Preview Annotation (here: https://developer.android.com/jetpack/compose/preview) that seems to be utilized in Android Studio to start a Preview of the hacked UI.
However what is missing in this documentation is in what dependency the @Preview annotation can be found. Cause it's not build in since it can't resolved in my project.
I'd love to have a small guidance to figure out how to get this to work!

This mode of operations is not yet supported.

Is there a way to get Preview working only in an Android application module which implements common modules?
Should be great we can use there until it works for all Compose variants

Any update on this?

Preview is implemented since build 0.5.0-build235. See https://github.com/JetBrains/compose-jb/issues/865#issuecomment-878109997

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Default root script

Would you be willing to allow a default root script in order to be able to run the script with just npm start, or p-s?
module.exports = {
    scripts: {
        default: {
            script: 'echo default script'
        }
    }
}

I could see that being valuable. In that scenario, how do you propose to show the help?

Yeah, I agree that this would be a good thing to add. Let's do it as you've said :+1:

If there is no default script, then show help
If there's a default script, then run that (don't show help)
If someone provides --help (only) then don't run any scripts and just show help (this means that npm start foo -- --help would not log help and run foo).

Sound good?

Because this is a breaking change, whoever makes the PR for this feature, please make it to the next branch so we can get a few breaking changes in a single release.

Good idea


Build: Create pyproject.toml file or setup.py

https://packaging.python.org/en/latest/tutorials/packaging-projects/#creating-pyproject-toml

https://thucnc.medium.com/how-to-publish-your-own-python-package-to-pypi-4318868210f9


Support for Annotation Property in ontology

Currently we support annotation properties present in the mappings, but we ignore annotation properties present in the ontology.

Hello,
I have a problem with the mapping.
:{text} a :Animal ; rdfs:label {annotation} .
This gives me a error message "The below list of predicates is unknown by the ontology : - http://www.w3.org/2000/01/rdf-schema#label"
It seems correct to me.

Hi,
thank you for reporting the issues.
The first mapping is not working since rdfs:label is not defined in the ontology, you can temporally solve the issue adding rdfs:label in your ontology. From Protege go on the Annotation property hierarchy tab and add the property rdfs:label even it is already present.

Thank you !
It works but it puts the rdfs:label as a Data property instead of an Annotation property.

Fixed in 39b85c2


Problem with upload.

I always got message "Unable to move the uploaded file to it's final destination" when I upload
Here is my code
$config = array(
          'auto_process' => false,
          'path' => $path,
          'overwrite' => true,
          'new_name' => "tmpcsv_teacher",
          'auto_rename' => false,
          'ext_whitelist' => array('csv'),
        );
        Upload::process($config);
        if (Upload::is_valid()) {
          Upload::save();
        }
        if ($file_upload = Upload::get_files(0)) {
          $filename = $path.'/'.$file_upload['saved_as'];
          $uploaded = true;
        }
        $errors = Upload::get_errors(0);
        echo '<pre>';var_dump($errors);exit;

I'm using latest version 2.0.6 and my folder is 770
My PHP is version 5.6/
I have no idea about this, I didn't found any threat on internet about this 😖

It means http://php.net/manual/en/function.move-uploaded-file.php returned FALSE. There could be several reasons for that, so you have to do some debugging.
You say the folder is 770, but what are the UID/GUID of the folder? If either of them is your webserver user, the webserver doesn't have write rights.

[SOLVED]
Nah, it seems the main problem isn't there.
however my uploaded file have been processed for twice and it make upload container contain 2 same files.
Because of that, when I move the first array it's success but the second one is fail. that's caused the error.
I just fix it by turn of "auto_process" on config/upload.php

Yup, when auto_process is active, you shouldn't call Process() manually. This behaviour is documented: https://fuelphp.com/docs/classes/upload/usage.html#/method_process

Well, since I use my own config on there.
I think I have no reason to write it again on file config 😕
       $config = array(
          'auto_process' => false,
          'path' => $path,
          'overwrite' => true,
          'new_name' => "tmpcsv_teacher",
          'auto_rename' => false,
          'ext_whitelist' => array('csv'),
        );

btw Is there any reason that you make 'auto_process' when I init upload data by calling process?
I just feel like it's no sense when you call "Process" to init the upload but you do that "Process" again.

Not a problem, just make sure "auto_process" is disabled.
It is enabled by default for backward compatibility reasons, the package is used in the Fuel v1 framework as well, and there this behaviour was default.