App runs on simulator but crashes on device: SVGKFastImageView is not defined

Hello everyone,
first of all: Thank you for this amazing plugin. I am using it in production for about a year now and havent had any issue with it.
Today, i started porting one of my apps from NativeScript 7 to NativeScript 8 using ns migrate and updating most of my dependencies. The app itself starts and works fine on the iOS 14.6 simulator.
Unfortunately, the app crashes on a real device as soon as i enter a view using the -tag. The app is based on Angular 11 and used to run just fine with NativeScript 7 on the simulator as well as on device.
Is this a known issue? Did i miss something when migrating to NativeScript 8? Again, the app launches without any problems but crashes on the device as soon as i enter the view that displays a SVG.
Here are the details from the console:
*** Terminating app due to uncaught exception 'NativeScript encountered a fatal error: Uncaught ReferenceError: SVGKFastImageView is not defined
 at
	SVGImage(file:///var/containers/Bundle/Application/DB866575-B368-4ADF-84DE-EB1E1F9ACE47/szfgmbkweb.app/app/vendor.js:158559:27)
	at createView(file:///var/containers/Bundle/Application/DB866575-B368-4ADF-84DE-EB1E1F9ACE47/szfgmbkweb.app/app/vendor.js:104398:22)
	at createElement(file:///var/containers/Bundle/Application/DB866575-B368-4ADF-84DE-EB1E1F9ACE47/szfgmbkweb.app/app/vendor.js:104598:30)

The dependencies i am using are:

"dependencies": {
    "@angular/animations": "~11.2.10",
    "@angular/cdk": "~11.2.8",
    "@angular/common": "~11.2.10",
    "@angular/compiler": "~11.2.10",
    "@angular/core": "~11.2.10",
    "@angular/forms": "~11.2.10",
    "@angular/platform-browser": "~11.2.10",
    "@angular/platform-browser-dynamic": "~11.2.10",
    "@angular/router": "~11.2.10",
    "@danvick/ngx-translate-nativescript-loader": "^3.0.1",
    "@fortawesome/fontawesome-pro": "^5.15.0",
    "@nativescript-community/ui-lottie": "~1.0.0",
    "@nativescript/angular": "~11.8.0",
    "@nativescript/appversion": "^2.0.0",
    "@nativescript/core": "~8.0.0",
    "@nativescript/iqkeyboardmanager": "~2.0.0",
    "@nativescript/theme": "~3.0.1",
    "@ngx-translate/core": "^13.0.0",
    "@nstudio/nativescript-loading-indicator": "^4.0.0",
    "@sergeymell/nativescript-svg": "^1.1.1",
    "core-js": "^3.10.1",
    "date-fns": "^2.20.0",
    "jwt-decode": "^3.1.2",
    "nativescript-barcodescanner": "^4.0.1",
    "nativescript-carousel": "~7.0.1",
    "nativescript-feedback": "^2.0.0",
    "nativescript-lottie": "~5.0.2",
    "nativescript-numeric-keyboard": "^5.0.0",
    "nativescript-ui-listview": "^9.1.0",
    "nativescript-vibrate": "^4.0.1",
    "reflect-metadata": "~0.1.13",
    "rxjs": "~6.6.7",
    "tslib": "^2.2.0",
    "zone.js": "~0.11.4"
  },

I found the solution a few minutes ago: Downgrading SVGKit to 2.1.1 fixes the problem.
In my project, i added the following line to the Podfile under App_Resources/iOS
pod 'SVGKit', '~> 2.1.0'

Since this causes a dependency conflict with the Podfile thats included in this plugin, i also removed the Podfile that comes with this plugin from within our building pipeline.
This is very hacky and should not be the final solution.
@SergeyMell do you have any plans looking into this? I will assist as best as i can if you need any help reproducing the steps that i took to fix this problem.

Hello @timoschlueter and thank you for the issue.
That looks a bit strange because I've tested this plugin on one NS8 project and it worked ok. The first thing that I'd advise is to remove all the platforms, node modules, and hooks after you finished the migration
rm -rf platforms node_modules hooks

and reinstall the dependencies
npm i

Please, let me know if it helps. If not, I'll recheck the plugin work for NS8 during this weekend and see what happens

@timoschlueter did you have a chance to check my advice? Did it work?

@SergeyMell not yet. I will try it and get back to you as soon as I can. Thanks for the advice!


[Bug]: Dropdown popover in the property pane needs a max height after which content scrolls

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Today all the dropdowns used in the property pane don't have a max height property. This hides data when the screen is a bit small and the user doesn't know that more data exists.
Steps To Reproduce

Add a JSON form widget or a datepicker widget
Click on the JSON form -> Field type or datepicker -> date format
Observe the number of items visible without scroll in the popover

Public Sample App
No response
Version
Production

@aswathkk I have updated the designs for this. Please check and let me know if you have any doubts. Figma

Tested this on Release - on all widgets with properties that have scroll option to scroll through the items. Works fine,.


Updated SDK MangoPayApi is NOT Initialized!

Hello,
We had updated the SDK from 2.10 to 3.1.6 to support 3DS2 support, however, after adding the new SDK reference, there is a runtime exception at $mangoPayApi = new \MangoPay\MangoPayApi(); in this code snippet.
....
require_once('../user/mangopay2-php-sdk-3.1.6/MangoPay/Autoloader.php');
define('MangoPayDemo_BaseUrl', *******);
define('MangoPayDemo_ClientId', *******);
define('MangoPayDemo_ClientPassword', *******);
define('MangoPayDemo_TemporaryFolder', __dir__);

$mangoPayApi = new \MangoPay\MangoPayApi();

....
there is no error log and I tried removing MangoPaySdkStorage.tmp.php file but it is not regenerated at all.
Please check and do the needful or suggest me the steps to remove this error.
Thanks in advance.

Hello,
I used the new released version 3.2.0 however, it is still not passing beyond this line.
$mangoPayApi = new \MangoPay\MangoPayApi();
please suggest to look for the possible issue!
Regards,
Ashok

@dduwoyemgp , can you please look into this issue as well. thanks.


Usage of environment variables instead storing critical in config (token)

Move token to an environment variable, also dotenv is nice to use while developing.
https://www.npmjs.com/package/dotenv

OK, i check it later


(opt): Pre-allocated stacks upon method invocation

This PR pre-allocate the necessary stack space necessary by a given method upfront, upon its invocation, as a potential optimization (but yet to be measured to see if it's an actual win) to avoid reallocations when repeatedly growing small vectors.
This PR only affects the bytecode interpreter.
Depends on #11.

Because there is now only a single interpreter stack instead of one per frame (since #14), this optimization is outdated and unable to be applied on the lastest master branch.
So, I think we can simply close it.


Quick fix for 765

Why are these changes needed?
For some reason select_speaker is getting a 'ChatCompletionMessage' rather than a str, and this wasn't being handled gracefully causing a crash.
This PR fixes the crash. 'ChatCompletionMessage' messages are now handled like any other response. However, it is unclear why some folks were seeing this behavior to begin with. This will require further investigation.
Related issue number
Mitigates #765
Checks

[ ] I've included any doc changes needed for https://microsoft.github.io/autogen/. See https://microsoft.github.io/autogen/docs/Contribute#documentation to build and test documentation locally.
[ ] I've added tests (if relevant) corresponding to the changes introduced in this PR.
[ ] I've made sure all auto checks have passed.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (f96963e) 27.76% compared to head (8ee0af1) 27.56%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #809      +/-   ##
==========================================
- Coverage   27.76%   27.56%   -0.21%
==========================================
  Files          27       27
  Lines        3493     3493
  Branches      791      791
==========================================
- Hits          970      963       -7
- Misses       2452     2458       +6
- Partials       71       72       +1

Flag
Coverage Δ

unittests
27.56% <100.00%> (-0.15%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

The PR #809 offers a quick fix to prevent the crash (once reviewed, accepted, and merged). I will continue hunting down the root cause.


feat: implement delete samples.

Add samples that use DML to delete some data
(spanner_dml_standard_delete) an use mutations to delete data by key and
ranges (spanner_delete_data).

This change is

PTAL.


Add option for 'tolerance' parameter in trim

Thanks! Can you add a test case please?

@harto I added a test case. I think it's ok but could you check?

:+1:

Tagged 1.2.0

Thanks!


Question: How do I specify a module version?

If I have >1 version of a module on my system and I want to create MD files for the commands in a particular version of my module, how do I do that?

Currently you need to import the module to the session. I think recent versions of ps allows you to import more then one version simultaneously. In this case you need to remove previous versions from the session.


Master build progression

As mentioned in #876, we have several patches we are currently applying to make master builds complete. These patches are mostly hacks to work around things like race conditions and the like, however, we do require these patches to make a full build succeed on current master. This PR is a mixture of previously mentioned hacks, plus a few new ones to resolve issues in the master build and allow it to complete.
A short list of the issues resolved or worked around using this PR:

#847
#848
#873
#874

This PR may still be WIP, so I'll add the tag and leave it until I'm sure it's complete:
I encountered a missing role error regarding the YARN ATS role, however I'm running another test build to determine whether clearing and replacing ../cluster's contents will resolve it.
Supersedes #876

Turns out the very unnecessary-looking global config changes are, in fact, necessary.  Chef 12.8 and above allows cookbooks to mandate chef_gem installations before any cookbook code executes.  As a result, it is no longer possible to correct any configuration after the chef run has started.


[WIP] Update Route Orderng

NOTE This is a preview of the route style I'm going with. I'd love to get feedback so we can zero in on a format we like. I'm going to continue updating the other routes to this style until I get feedback.
Overview
Update routes to ensure the right order of operations.  This allows us to look at the API structure at a glance, and each handler can be as detailed as it needs. User authentication and entity extraction is done on the handler itself.
Testing Instructions
Review the code, run the tests.
Connects #562

Would we add, e.g., Handlers.scala to separate that logic? I think this should also probably help with the abstraction @moradology suggested in #564

We could put the handlers in their own file, but they'd still be tightly coupled with the routes. I think it makes sense for now to keep them in the route's trait. I don't know if that makes it harder to test the functions though.
In @moradology's example, complete is kept outside the function, which is probably a cleaner separation. There are cases when we're not always completing though. For example, are the following equivalent:
def createBucket: Route = authenticate { user =>
  entity(as[Bucket.Create]) { newBucket =>
    onComplete(Buckets.insertBucket(newBucket.toBucket(user.id))) {
      case Success(bucket) => complete(bucket)
      case Failure(e) => throw e
    }
  }
}

def createBucket: Route = complete {
  authenticate { user =>
    entity(as[Bucket.Create]) { newBucket =>
      onComplete(Buckets.insertBucket(newBucket.toBucket(user.id))) {
        case Success(bucket) => bucket
        case Failure(e) => throw e
      }
    }
  }
}

What about these:
def listBuckets: Route = authenticateAndAllowAnonymous { user =>
  (withPagination & bucketQueryParameters) { (page, bucketQueryParameters) =>
    onSuccess(Buckets.getBuckets(page, bucketQueryParameters)) { buckets =>
      complete(buckets)
    }
  }
}

def listBuckets: Route = complete {
  authenticateAndAllowAnonymous { user =>
    (withPagination & bucketQueryParameters) { (page, bucketQueryParameters) =>
      onSuccess(Buckets.getBuckets(page, bucketQueryParameters)) { buckets =>
        buckets
      }
    }
  }
}

can the latter be made any more compact? The buckets => buckets feels redundant.

It might not always be possible, but one thing that I try to do is keep spray-specific logic out of the handler functions. This might also prevent confusion around which endpoints get authenticated and which don't - you can just peak at the route definition and see which directives wrap access to the function which transforms the post entity into the response you'd like.
As I say, there could be extenuating circumstances here that I'm not imagining which necessitate pushing logic into your handler functions

What about this:
def listBuckets(page: Int, bqp: BucketQueryParameters): Future[Bucket] =
  Buckets.getBuckets(page, bucketQueryParameters)
}

val listBucketsRouteSegment =
  authenticateAndAllowAnonymous { user =>
    (withPagination & bucketQueryParameters) { (page, bucketQueryParameters) =>
      complete { listBuckets(page, bucketQueryParameters) }
    }
  }
}

I think this is a case where is no "wrong" way, akka-http API allows you to skin this cat lots of ways. But unless I had to handle failure in a very specific way, such that normal error handlers were not sufficient, I would write it with complete taking a Future[T] as well. That just has a cleaner separation between route/app logic as @moradology is saying.

There are also route-specific means of dealing with errors - which seems to me the most likely place to handle and think about errors happening inside functions further down in the route  specification: http://doc.akka.io/docs/akka/2.4/scala/http/routing-dsl/exception-handling.html

Cool, all this sounds really good and looks more intuitive / compact. Giving it a go now.

Scala's weird:
def plusOne(i: Int): Int = i + 1
val plusOne = { i: Int => i + 1 }

Just encountered this problem: I'm making a getOrganization route like this:
def getOrganization(orgId: UUID): Route = authenticate { user =>
  onSuccess(Organizations.getOrganization(orgId)) {
    case Some(org) => complete(org)
    case None => complete(StatusCodes.NotFound)
  }
}

(assuming all the pathPrefix and get stuff has been taken care of outside this). The above can be expressed more idiomatically as:
def getOrganization(orgId: UUID): Route = authenticate { user =>
  rejectEmptyResponse {
    complete { Organizations.getOrganization(orgId) }
  }
}

And this does indeed work. Using http I was able to confirm that this returns a 404:
> http :9000/api/organizations/C3EC638C-AB44-48E0-B0C0-25A76558D12C "Authorization: Bearer eyJ..."
HTTP/1.1 404 Not Found
Content-Length: 42
Content-Type: text/plain; charset=UTF-8
Date: Fri, 21 Oct 2016 20:44:37 GMT
Server: akka-http/2.4.11

The requested resource could not be found.

However, this test fails:
"return a 404 for non-existent organizations" in {
  val orgUUID = java.util.UUID.randomUUID()
  Get(s"/api/organizations/$orgUUID")
    .addHeader(authorization) ~> baseRoutes ~> check {
    status shouldEqual StatusCodes.NotFound
  }
}

with:
- should return a 404 for non-existent organizations *** FAILED ***
  Request was rejected (DynamicVariable.scala:58)

I can only surmise that the test must run after the request is rejected but before it is translated to a 404 by the rejectEmptyResponse handler.
Searching hasn't revealed any easy solutions. Do you guys have any idea? If not, we'll just use the more explicit style.

A bit perplexing - nothing obvious springs out at me. Out of curiosity, what do you see if you add println(status)?

I did try to add a println(status) right there, but couldn't find it in the output. Let me try again by printing a marker ...

Yeah println(s"==> $status") has no results for ==> anywhere. Wonder if println gets suppressed inside check statements.

I've made the stylistic changes throughout. There are some failing tests that I will look in to and get working next.

Figured out the issue with rejectEmptyResponse: apparently I need to seal the route before testing it for all rejection and exception handlers to apply: http://doc.akka.io/docs/akka/2.4/scala/http/routing-dsl/testkit.html#Sealing_Routes. Once I added that the tests started passing again.

One final thought I had was that a route like this:
def createBucket: Route = authenticate { user =>
  entity(as[Bucket.Create]) { newBucket =>
    complete {
      Buckets.insertBucket(newBucket.toBucket(user.id))
    }
  }
}

while very neat, will return a 200 OK instead of a 201 Created response. To be RESTful, we're going to have to do something like this:
def createBucket: Route = authenticate { user =>
  entity(as[Bucket.Create]) { newBucket =>
    onSuccess(Buckets.insertBucket(newBucket.toBucket(user.id))) { bucket =>
      complete(StatusCodes.Created, bucket)
    }
  }
}

which is what I've opted for in all the updated routes.
I've also renamed methods like getBuckets to be listBuckets to be clearer that they return a list rather than a single instance. Single instance methods remain of the pattern getBucket.

Rebased on lated develop.

This is probably a lot of code to go through, but it works correctly (because it compiles and all the tests pass). It needs more style / pattern review. Ready for another look.

Rebased on latest develop.

The failing tests are not this PR's fault, Jenkins is acting up. I'd appreciate it if this could be looked at today @moradology @jisantuc

:+1:

Thanks @jisantuc. Since this touches all of the routing, I'm eager to get this merged to minimize merge conflicts. Will do so at the end of the day.


Create 383-Ransom-Note.py

File(s) Added: 383-Ransom-Note.py
Language(s) Used: python
Submission URL: _https://leetcode.com/problems/ransom-note/submissions/837630160/_

Thanks for contributing!


Update references to old repository name

Overview
Updates all references to DistrictBuilder 2 to reference DistrictBuilder instead. The old repository has been renamed to DistrictBuilder Classic.
Notes
References / links in documentation, configs, and manifest files have been updated to reflect the new repository name.
No longer maintained notices have been applied to Classic repos in PublicMapping/districtbuilder-classic#560 and PublicMapping/districtbuilder-classic-config#2.
Testing Instructions

Verify that the Jenkins build passes.
Confirm that all references to DistrictBuilder 2 have been replaced with DistrictBuilder.

Closes #78

Outside of the changes in this PR, I've updated:

our Codetree repository sync
the districtbuilder (formerly district-builder-2) Jenkins job
the S3 buckets containing Terraform config (done in #65)
the Terraform project name variable (done in #65)
the project folders in the sysadmin section of the fileshare (reminded by your comment and https://github.com/PublicMapping/districtbuilder/issues/78#issuecomment-610016434)

Can you think of anything else?

@rbreslow Last round of suggestions applied, ready for another round!


[Docs]: Missing documentation for import application from git repository

Is there an existing issue for this?

[X] I have searched the existing issues

Documentation Link
https://docs.appsmith.com/advanced-concepts/more/backup-restore#import-from-a-git-repository
Describe the problem
Today, the link mentioned for git repository import is the same as the source page's link.
Describe the improvement
Please update the link to the correct page.

Good catch, Trisha. Here's the right link
https://docs.appsmith.com/advanced-concepts/version-control-with-git/import-from-repository

Fixed it. Closing issue.


Test if plugin is active

What would be the recommended way to test if the plugin is active on the page?
I guess !!navigator.userAgent.match(/HybridTvViewer/i) would be sufficient.

That should suffice – that's exactly how I check for its predecessor, FireHbbTV.

I do agree.


No player rendering (skipping entity with id minecraft:player)

For some reason, I can't see my player model anymore when I'm on the home screen, even when I could earlier.
Log

Seconded - same issue.

Seconded - same issue.

Fixed in v1.1.

Fixed in v1.1.


Add Git to the Chances Bot Repository and Codespace.

Requested Change (Write the change features you want here):
Add git to the repository to track code changes and commits.
New Change Function (Write what you want the command to do):
Adding git would make tracking the code changes and timeline easier.

Finished. Got us initialized and working in this repo. V1.1 later today.


Docs: Modified release page to use release collections

Description
In this PR release page is modified to use release collection to display the release versions with separate markdown file
for each release.
This PR fixes #
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

@SudhanAruna, well done! One small item to deal with here: the descending order of releases by version number is being itemized slightly out of order with the string “v0.4.9” coming before “v0.4.25", because the “9” is greater than “2", as opposed to “25” being greater than “9".

https://github.com/layer5io/meshery/issues/2126 has been opened to track the ordering of releases.
Super fantastic work here, @SudhanAruna. It's been 16 months since this challenge was first presented to the community. Way to tackle it!


having trouble with live-preview in Atom and Brackets.

I cant get the live preview to work in brackets or atom.
they both display an error message whenever I try and I've already tried to delete and re-download both programs and it still doesn't work. Pleas help.

@Cassidy7396  If you cannot get the preview to work, you can always go to your html file directly in your directory and click it that will open it in your browser and you can preview from there. Not much of a work around but it should do the trick.

You can open this easily via the package "open-in-browsers" in that Michael had us add to Atom at the beginning of the semester. Right click the index.html file, hover over "Open in browsers", then select the browser you want. As I mentioned before, Internet Explorer and Edge will often have issues displaying. I recommend , Chrome, Firefox, or Safari.

I just now realized that ya'll have open in browserS. (Although I believe that is the better of the two...) I have open in browser (no s). Opens in your default browser.
Try this package instead.
You will still need to use it on your HTML, not your js file. Shift Command Q on a mac, but seeing you're on PC I don't know of the top of my head.

I'm sure that there's nothing wrong with using "open-in-browser" but "open-in-browsers" is the package that Michael recommended downloading. It may be less convenient than yours, but I like that it give you the option to choose a different browser. With any digital design, it's important to test in MULTIPLE browsers because sometimes things will display differently in different browsers. It's a good habit to get into.


No way to defer location permissions prompts

This issue only manifests when linking against one of the supplementary location/beacon libraries.
Correct me if I'm wrong, but it doesn't look like there's any supported way to tell Leanplum that it should never present a prompt asking for user's location. When linking against the location or beacon library, the app prompts the user on launch, which is annoying for users and greatly reduces overall opt-in (some light reading on the subject: http://techcrunch.com/2014/04/04/the-right-way-to-ask-users-for-ios-permissions/ ). Our app contains complex logic so that location permission prompts are shown at just the right time to maximize user opt-in, but Leanplum aggressively presents it as soon as [Leanplum start] is called.
For now, I'm swizzling CLLocationManager and NOPing all authorization requests made by Leanplum, but this is far from ideal.

Hi, thanks for the suggestion! That is the best workaround for now. We'll incorporate this option in the next release.

Closing old open issues.
Note you can set authorizeAutomatically to false in LPLocationManager to handle this.


chore: update pop-api and examples to official ink! v5.0

Based on @evilrobot-01 comment here, this should be changed to ink! v4.0


Example added

I suggest including the example I have provided, this will save time to other developers and provide them with a visual clue on how the property works.

This seems like a small (but important) contribution, so no Contribution License Agreement is required at this point. We will now review your pull request.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Added commit content to local master branch. To be merged by May 31


Add RxJava CallAdapter

Since we dropped Retrofit, Rxjava support is no longer free.  We need to create some sort of wrappers for apollo which would allow user to return RxJava observables.  Since there is a dependency on RxJava we will need to make the reactive wrappers a separate module. There will be an ApolloRx1Client and an ApolloRx2Client.
Api would be something like:
ApolloRx1Client.builder().apolloClient(apolloClient).build()
Then user can do ApolloRx1Client.call(operation).subscribe()
Similar
ApolloRx2Client.call(operation).subscribe()

First implementation is to only support Observable there will be follow up issues to support Single.

After a bit of discussion on slack:

We will be building adapters in the style of CallAdapter<T>.
We will have ApolloClient register an adapter, if non registered default will be used for newCall
We will create override  newCall(operation,CallAdapter) so that users can use many call adapters

Adapters won't work do to use not being able to do R in java. Here's the backup plan https://gist.github.com/digitalbuddha/3c1dbccf059f0279e46e540b2c5fd89e

Closed by #341


added new info

Thanks for contributing to the Harness Developer Hub! Our code owners will review your submission.
Description

Please describe your changes: __________________________________
Jira/GitHub Issue numbers (if any): ______________________________
Preview links/images (Internal contributors only): __________________

PR lifecycle
We aim to merge PRs within one week or less, but delays happen sometimes.
If your PR is open longer than two weeks without any human activity, please tag a code owner in a comment.
PRs must meet these requirements to be merged:

[ ] Successful preview build.
[ ] Code owner review.
[ ] No merge conflicts.
[ ] Release notes/new features docs: Feature/version released to at least one prod environment.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://668bf9fab131a4451d901cea--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://668e933823d93f137de1ed7d--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66910767607d0f19d0fb62ab--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://66910e9cf386b20078116cf2--harness-developer.netlify.app

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step behind the Harness VPN and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app. Current Draft URL is: https://6691144412d5a7007ba0c15e--harness-developer.netlify.app


needs some basic usage docs ;)

From https://github.com/feathersjs/feathers-stripe/blob/master/src/index.js I gather you could do:
import { card as Card, charge as Charge, customer as Customer, plan as Plan} from 'feathers-stripe'
In order to get started... each service takes an apiKey options:
const stripeCard = new Card({apiKey: 'xxxxxxx');
To use, see Stripe API. Each class is just a CRUD entity with basic stripe attributes.

I think this is still in progress, right @ekryski? If so, we may want to add that to the Readme.

Definitely still in progress. I'm not even sure if it works yet.

I've update the docs a bit. I think we can close this now.


bug: cant edit user profile: Groups is immutable

env

os: linux ubuntu 20.04 amd64
database: postgres 15.3
docker image: casbin/casdoor:v1.361.0

to reproduce:
login with admin account, go to profile page, do not edit anything, just click the save button, then the website reports an error:  The Groups is immutable

also tried clean up database and still can reproduce.
here is some of my discovery
backend read a param 'column', i tried to add this param to the update post, and it still report same error
https://github.com/casdoor/casdoor/blob/de9eeaa1efab82de9d6782a5d157e6e1658997d0/controllers/user.go#L228

the columns param is not used by the function CheckPermissionForUpdateUser.  this is useless
the error was emitted from here:
https://github.com/casdoor/casdoor/blob/de9eeaa1efab82de9d6782a5d157e6e1658997d0/object/user_util.go#L298-L301
https://github.com/casdoor/casdoor/blob/de9eeaa1efab82de9d6782a5d157e6e1658997d0/object/organization.go#L268-L270
the strange thing is : since i did not change anything, the above codes should not be triggered
Also, the Group field is 'Admin' not 'Immutable'. even if i have changed the 'Groups' field, it still should not report this error
https://github.com/casdoor/casdoor/blob/de9eeaa1efab82de9d6782a5d157e6e1658997d0/object/init.go#L64

@code-pangolin

The columns param is not used by the function CheckPermissionForUpdateUser right now. I think we can use the parmas to optimize functionCheckPermissionForUpdateUser .
As you see, if you don't edit anything, the above codes should not be triggered. So I can't reproduce your issue. Can you debug to see if the slice itemsChanged append the Groups item?
https://github.com/casdoor/casdoor/blob/de9eeaa1efab82de9d6782a5d157e6e1658997d0/object/user_util.go#L298-L301

@code-pangolin fixed by: https://github.com/casdoor/casdoor/commit/0a0c1b47881addb25778df8ff5e43a12a90f18b2


Provide comments to a dossier

As a group member, I want to provide comments to a dossier, so I can provide input to the initiator of the dossier.
[Story Points: 4]
[Priority: Medium]
[Risk: Low]
Tasks:
Demo steps:
Given I’m a group member
When I select a dossier and provide comments, and click on Submit Changes button
Then a confirmation message is displayed, and the system will save the comments to the dossier

This is a duplicate of #343


'Cannot retrieve map data -- did you enter an API key'

I get this error:
'Cannot retrieve map data -- did you enter an API key'
I put in the mapbox api key and I have waited about one hour, so far no result (this is the first time starting).

@tmatthews5511
I had a similar problem and resolved it by manually entering the lat/lon of my location.

Bingo! That got it. Thank you kindly for the quick solution, you made my day! (I'm a total weather nerd).


log/slog: JSONHandler generates invalid JSON with empty Attr

What version of Go are you using (go version)?

1.21.0

Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?

I executed this code in a main function. This can also be reproduced in the go playground: https://go.dev/play/p/i7VtMtNK4eV
var buf bytes.Buffer
	f := func(groups []string, a slog.Attr) slog.Attr {
		return slog.Attr{}
	}
	h := slog.NewJSONHandler(&buf, &slog.HandlerOptions{

		ReplaceAttr: f})

	results := func() []map[string]any {
		var ms []map[string]any
		for _, line := range bytes.Split(buf.Bytes(), []byte{'\n'}) {
			if len(line) == 0 {
				continue
			}
			var m map[string]any
			if err := json.Unmarshal(line, &m); err != nil {
				panic(err) // In a real test, use t.Fatal.
			}
			ms = append(ms, m)
		}
		return ms
	}
	err := slogtest.TestHandler(h, results)
	if err != nil {
		log.Fatal(err)
	}

What did you expect to see?
The program run successfully without an error.
What did you see instead?
The program panicked with the following error when json unmarshal happened.
panic: invalid character ',' looking for beginning of object key string

CC @jba.

This is a bug and it can occur in scenarios where users try to replace some attributes in embedded groups with empty strings.

@gopherbot please consider this for backport to 1.21, it could be a common case and has no workaround.

I don't think this requires a backport. It's probably very rare, and you can work around it by just not removing every attr (or adding a dummy one, if you have to remove them all for some security reason).


Adds placeholder props and allows empty state

Fixes JIRA ticket DSD-1589.
NOTE: this is a draft PR because Edwin and I made some assumptions about how this should work and want to get sign off from others on the approach before finishing the PR (adding to the Changelogs, updating Storybook, etc).
This PR does the following:

Allows users to pass an empty string for initialDate and initialDateTo, which results in empty inputs.
Allows users to optionally pass a string placeholder and placeholderTo.

How has this been tested?

Locally, on Storybook.

Accessibility concerns or updates

None.

Checklist:

[ ] I have updated the Storybook documentation accordingly.
[ ] I have added relevant accessibility documentation for this pull request.
[ ] All new and existing tests passed.

Front End Review:

[ ] Review the Vercel preview deployment once it is ready.

This looks good. For the draft, can you add a working example in storybook with the initial empty value set? So we can see it working.

I think the choices that you made for the prop functionality are fine.  But for fun, here is another possibility...
Omitting the initialDate or initialDateTo props or passing empty strings to the props would render empty fields.  To get today's date, pass a wildcard like @today.  This would be a new concept in our components, but it would then allow for other wildcards like @yesterday, @nextweek, etc.

@bigfishdesign13 that sounds like a good feature for another PR.
@oliviawongnyc I made a small update to the Storybook example. I'm using this now in a Research Catalog form and I wanted to make sure that an empty value does return null or an empty string. For example, If the user only wants to search from start year of 1950 until now, the end year can be empty and the onChange function will return the appropriate values (as far as I can tell). Based on this, this update looks good.

@oliviawongnyc I made a small update to the Storybook example. I'm using this now in a Research Catalog form and I wanted to make sure that an empty value does return null or an empty string. For example, If the user only wants to search from start year of 1950 until now, the end year can be empty and the onChange function will return the appropriate values (as far as I can tell). Based on this, this update looks good.

@EdwinGuzman, I'm not entirely sure what you mean. What do you expect the values to be if a user empties one of the inputs?

@oliviawongnyc I expect it to be null or undefined.

@EdwinGuzman, gotcha. It's null. Do you feel like this is good to go?


[RFC]: add blas/base/zswap

Description
This RFC proposes adding the package @stdlib/blas/base/zswap for interchanging two complex double-precision floating-point vectors.
void c_zswap( const int N, void *X, const int strideX, void *Y, const int strideY )

Related Issues
Related issues: #2039
Questions
No.
Other
No.
Checklist

[X] I have read and understood the Code of Conduct.
[X] Searched for existing issues and pull requests.
[X] The issue name begins with RFC:.

Hi, just had a quick question: For double-precision floating point vectors, in my implementation I represented them as treating complex numbers as pairs of double values (using 2 double variables to store imaginary and real parts of complex number during a swap) but I also found out that there is a double_Complex data type which is a built-in C99 complex data type. If we use that, we'd just need one variable to store the complex number during the swap and the compiler will handle real and imaginary parts (with the restraint that it would work with compilers supporting C99 and above).
So, how should we be representing double-precision complex numbers?
cc @kgryte

Treat as pairs of real-valued double-precision floating-point numbers. No reason in this case to include an additional header file.
On a more general note, we don't directly use the built-in C99 complex dtypes in stdlib, but use our own C complex dtypes.

Got it, thanks @kgryte! Also, are there any workarounds/guide for memory management using doubles. For example in benchmark/c, using something like:
double x[ len*2 ];
double y[ len*2 ];

resulted in stack overflow on testing:
c::zswap:len=100000
make[1]: *** [Makefile:116: run] Error -1073741571

since we're using len to determine size of x and y and that can go until 10^6 (also double here is consuming twice as more memory compared to float).
A solution I thought can work is allocation using heaps instead of stacks i.e.
double *x = (double *) malloc(len*2 * sizeof(double));
double *y = (double *) malloc(len*2 * sizeof(double));
.
.
.
free(x);
free(y);

@performant23 See https://github.com/stdlib-js/stdlib/issues/369 for a quick workaround. Yes, in the longer term, we need to refactor memory allocation of arrays. In the short term, try adjusting ulimit.

If that doesn't work, feel free to do manual memory allocation and freeing.

Got, it! Will do!


TS Server fatal error:  Cannot read properties of undefined (reading 'charCount')

Type: Bug
❗❗❗ Please fill in the sections below to help us diagnose the issue ❗❗❗
TypeScript Version: 5.0.2
Steps to reproduce crash
I do not have a defined way to reproduce the issue.  Though the one thing I can say is that I am using JS files, not TS files.  The editor's intelesence and text coloring also seems to be way off with it telling me there are js errors even though I know the syntax is correct.  I can even close the file and reopen it and the js errors are gone... at least until I start editing again.  I also can say that I have been doing a lot of file renaming and moving.  This seems to be related, as the VS code editor seems to start acting in this weird way more when I am moving files around.  Note I have seen this on both an Angular TS app I have been working on and a React JS app, though this is the first time I have seen a hard crash.
TS Server Log
❗ Server logging disabled. To help us fix crashes like this, please enable logging by setting:
"typescript.tsserver.log": "verbose"

After enabling this setting, future crash reports will include the server log.
TS Server Error Stack
Server: syntax
TypeError: Cannot read properties of undefined (reading 'charCount')
    at LineNode.walk (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:180666:30)
    at LineIndex.edit (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:180565:17)
    at _ScriptVersionCache._getSnapshot (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:180371:31)
    at _ScriptVersionCache.getSnapshot (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:180364:17)
    at TextStorage.getSnapshot (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:170748:65)
    at ScriptInfo.getSnapshot (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:170890:29)
    at InferredProject2.getScriptSnapshot (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:171540:25)
    at getOrCreateSourceFileByPath (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:135448:35)
    at Object.getOrCreateSourceFile (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:135444:14)
    at c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:135376:42
    at Object.getSourceFileWithCache [as getSourceFile] (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:117127:24)
    at findSourceFileWorker (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:119460:23)
    at findSourceFile (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:119380:20)
    at c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:119329:22
    at getSourceFileFromReferenceWorker (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:119298:26)
    at processSourceFile (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:119327:5)
    at processRootFile (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:119123:5)
    at c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:117908:41
    at forEach (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:2307:22)
    at createProgram (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:117908:5)
    at synchronizeHostData (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:135400:15)
    at Object.getProgram (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:135472:5)
    at InferredProject2.updateGraphWorker (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:172153:41)
    at InferredProject2.updateGraph (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:172090:32)
    at _ProjectService.assignOrphanScriptInfoToInferredProject (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:174400:13)
    at _ProjectService.assignProjectToOpenedScriptInfo (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:176020:12)
    at c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:176250:64
    at flatMap (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:2555:17)
    at _ProjectService.applyChangesInOpenFiles (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:176250:24)
    at updateOpen (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:177395:29)
    at c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:179962:69
    at IpcIOSession.executeWithRequestId (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:179954:14)
    at IpcIOSession.executeCommand (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:179962:29)
    at IpcIOSession.onMessage (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:180004:51)
    at process.<anonymous> (c:\Users\EmGooser\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js:181571:14)
    at process.emit (node:events:526:28)
    at emit (node:internal/child_process:938:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:84:21)

VS Code version: Code 1.77.1 (b7886d7461186a5eac768481578c1d7ca80e2d21, 2023-04-04T23:21:11.906Z)
OS version: Windows_NT x64 10.0.19045
Modes:
Sandboxed: No

System Info

Item
Value

CPUs
AMD Ryzen 7 5800X 8-Core Processor              (16 x 3793)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okskia_renderer: enabled_onvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: disabled_off

Load (avg)
undefined

Memory (System)
63.94GB (38.77GB free)

Process Argv
--crash-reporter-id 5ef1ba55-05d6-4b17-8b99-ce7cd346821e

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

vscode-docker
ms-
1.25.0

remote-containers
ms-
0.292.0

remote-wsl
ms-
0.77.0

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vstes627:30244334
vslsvsres303:30308271
vserr242:30382549
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vsdfh931:30280409
vshan820:30294714
vstes263:30335439
pythondataviewer:30285071
vscod805:30301674
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
cmake_vspar411:30581797
vsaa593cf:30376535
pythonvs932:30410667
cppdebug:30492333
vsclangdc:30486549
c4g48928:30535728
dsvsc012:30540252
pynewext54:30695312
azure-dev_surveyone:30548225
vsccc:30610678
nodejswelcome1:30587005
282f8724:30602487
pyind779:30671433
89544117:30613380
pythonsymbol12:30671437
vsctsb:30705553
azdwalk:30721579
pythonms35:30701012
pythonfmttextcf:30716743

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.78.0. Please try upgrading to the latest version and checking whether this issue remains.
Happy Coding!

Here is an example of what I mean when I say "intelesence and text coloring also seems to be way off"

Something I just noticed... see that error there?  that error is incorrect because this is the only place it is declared in this file.  I have a hunch that whatever is making the error checks is not looking at the right file.  Note a lot of the file name changes I have been doing is to fix case while I am doing this refactoring.  I would put money on this being related to whatever process is making those errors is not getting using the correct file (or some from in memory cashe) and then trying to apply the color and/or error checking on old file data but that file data cashe is not being updated correctly due to the change in name file case.
So a possible way to reproduce this.

Make a code file with a good amount of code in it (say 500 lines)
change the case of the file name
Start editing the code in some way that would cause line numbers and or other key details the text coloring needs to function correctly

Here is an example of why I think this is a file case thing.  Notice in the image the ERROR that is being presented is saying the file name is "createEditEstimates" but on the file system it is in fact "CreateEditEstimates".


[Suggestion] Save/Load Configuration

Ability to save settings and load them.
thank you

Also another suggestion:
Maybe an "About" section or something that links back to the github.
Thank you for this, works well with Proguard too. Just need to work on obfuscating some class names.

Also another suggestion:
Maybe an "About" section or something that links back to the github.
Thank you for this, works well with Proguard too. Just need to work on obfuscating some class names.

And final request for now:
A "Watermark" feature so I can add some unique line/phrase in order to link the .jar to someone. Rather not have to add a watermark and build 7 times for 7 different people, and instead let the obfuscator handle this.

And final request for now:
A "Watermark" feature so I can add some unique line/phrase in order to link the .jar to someone. Rather not have to add a watermark and build 7 times for 7 different people, and instead let the obfuscator handle this.


add target to make redhat release

Changes

Submitter Checklist
These are the criteria that every PR should meet, please check them off as you
review them:

[ ] Includes tests (if functionality changed/added)
[ ] Includes docs (if user facing)
[ ] Commit messages follow commit message best practices

See the contribution guide for more details.
Reviewer Notes
If API changes are included, additive changes must be approved by at least two OWNERS and backwards incompatible changes must be approved by more than 50% of the OWNERS.
Release Notes
Describe any user facing changes here, or delete this block.

Examples of user facing changes:
- API changes
- Bug fixes
- Any changes in behavior

Can we add the changes to dockerfile in the openshift-ci directory instead of the build directory, it's better that way. This is to avoid any conflicts in the future.


⚠ Processors has degraded performance

In 1b90384, Processors ($STATUS_URL) experienced degraded performance:

HTTP code: 200
Response time: 87 ms

Resolved: Processors performance has improved in e54d8c8.


Organization landing page

Pending specification. Possibly related to organization user signup at #3902.
@saleiva @javisantana @andrewxhill @xavijam

this is central for me

Closed as it is on central


Test environment hangs if activity is not defined, and scheduleToStartTimeout is ignored

Is your feature request related to a problem? Please describe.
When using the Temporal test environment, if an activity is run which is not registered, the test hangs, and apparently forever. I've set the scheduleToStartTimeout to a few seconds but apparently the test Temporal server ignores it.
Describe the solution you'd like
Tests should fail immediately when an activity is called that is not registered. Alternatively, or in addition, the scheduleToStartTimeout should be respected.
Describe alternatives you've considered
None
Additional context
Temporal SDK 1.26.1

Can confirm Test server does support scheduleToStartTimeout  timeout
https://github.com/temporalio/sdk-java/blob/b45e40d4056d4efc522a1e47ad83b1d0a434ecfa/temporal-sdk/src/test/java/io/temporal/workflow/activityTests/ActivityTimeoutTest.java#L282
scheduleToStartTimeout is not the right timeout to set if you want the activity to fail in this scenario since even if an activity is not registered on the worker, the server can still attempt to start it as long as a worker is listening on the underlying task queue. You want to set a *ToCloseTimeout. The behaviour you are describing is the same behaviour as the real Temporal Server. We do have another feature request for using a different retry policies when under test https://github.com/temporalio/sdk-java/issues/626.

scheduleToStartTimeout is not the right timeout to set if you want the activity to fail in this scenario since even if an activity is not registered on the worker, the server can still attempt to start it as long as a worker is listening on the underlying task queue.

Ah, really? Looking at this blog post, ScheduleToStart should be a smaller timeout than any of the ToClose timeouts. Workers are listening, but if the workflow has not started, why wouldn't the ScheduleToStart timeout apply?
How would I configure the case in which my workflow can take hours or days of real time, but if its not scheduled very quickly I want to bail out?

how would I configure the case in which my workflow can take hours or days of real time, but if its not started very quickly I want to bail out?

You would use ScheduleToStart , but as I said an activity type not being registered does NOT cause any issue scheduling an activity, it only causes an issue when executing the activity.

how would I configure the case in which my workflow can take hours or days of real time, but if its not started very quickly I want to bail out?

You would use ScheduleToStart , but as I said an activity type not being registered does NOT cause any issue scheduling an activity, it only causes an issue when executing the activity.

Ok. Isn't that weird and confusing? If an activity type is not registered and therefore an activity is scheduled, but not started, why would ScheduleToStart which subsumes both endpoints of this time, not apply? Is there a tracking issue or something I can follow for a timeout that covers the case of an activity not being registered?

I think there is a misunderstanding here, to be clear, If an activity type is not registered, but was scheduled it will still be started if any worker is listenting on the task queue.
This is how the protocol between the Temporal worker and server works and is important to safely roll out new Workflow/Activity types. Workers poll for work by task queue , not by activity type, if a worker is listening on a task queue it can get any tasks assigned to that task queue. Once a worker picks up a task the server considers that task as started. If the worker does not know how to handle that activity type then the worker will that activity attempt, but from the servers perspective the task was started. This behaviour is important when rolling out new types of activities/workflows that old workers may not understand

Thank you for the explanation about what "started" actually means. I think it would be helpful if the docs included this information because this technical definition of "started" would not match most people's mental model of an activity being "started".


Unable to build Wheel

Ubuntu 23.10
pip install OpenTimelineIO
Collecting OpenTimelineIO
Downloading OpenTimelineIO-0.15.0.tar.gz (5.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.1/5.1 MB 8.2 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting pyaaf2<1.7,>=1.4 (from OpenTimelineIO)
Downloading pyaaf2-1.6.0-py2.py3-none-any.whl (103 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.6/103.6 kB 5.1 MB/s eta 0:00:00
Building wheels for collected packages: OpenTimelineIO
Building wheel for OpenTimelineIO (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for OpenTimelineIO (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [225 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/versioning.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/test_utils.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/media_linker.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/opentime.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/hooks.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/url_utils.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
copying src/py-opentimelineio/opentimelineio/exceptions.py -> build/lib.linux-x86_64-cpython-311/opentimelineio
creating build/lib.linux-x86_64-cpython-311/opentimelineio/algorithms
copying src/py-opentimelineio/opentimelineio/algorithms/track_algo.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/algorithms
copying src/py-opentimelineio/opentimelineio/algorithms/stack_algo.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/algorithms
copying src/py-opentimelineio/opentimelineio/algorithms/timeline_algo.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/algorithms
copying src/py-opentimelineio/opentimelineio/algorithms/filter.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/algorithms
copying src/py-opentimelineio/opentimelineio/algorithms/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/algorithms
creating build/lib.linux-x86_64-cpython-311/opentimelineio/plugins
copying src/py-opentimelineio/opentimelineio/plugins/python_plugin.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/plugins
copying src/py-opentimelineio/opentimelineio/plugins/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/plugins
copying src/py-opentimelineio/opentimelineio/plugins/manifest.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/plugins
creating build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/otiostat.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/autogen_serialized_datamodel.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/autogen_version_map.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/console_utils.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/autogen_plugin_documentation.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/otioconvert.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/otiopluginfo.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/otiocat.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/otiotool.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
copying src/py-opentimelineio/opentimelineio/console/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/console
creating build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/file_bundle_utils.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/otio_json.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/otioz.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/fcp_xml.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/otiod.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/svg.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/cmx_3600.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying src/py-opentimelineio/opentimelineio/adapters/adapter.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
creating build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/clip.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/effect.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/stack.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/timeline.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/marker.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/external_reference.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/transition.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/generator_reference.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/box2d.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/serializable_collection.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/track.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/schemadef.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/image_sequence_reference.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
copying src/py-opentimelineio/opentimelineio/schema/v2d.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schema
creating build/lib.linux-x86_64-cpython-311/opentimelineio/core
copying src/py-opentimelineio/opentimelineio/core/item.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/core
copying src/py-opentimelineio/opentimelineio/core/mediaReference.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/core
copying src/py-opentimelineio/opentimelineio/core/composable.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/core
copying src/py-opentimelineio/opentimelineio/core/composition.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/core
copying src/py-opentimelineio/opentimelineio/core/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/core
copying src/py-opentimelineio/opentimelineio/core/_core_utils.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/core
creating build/lib.linux-x86_64-cpython-311/opentimelineio/schemadef
copying src/py-opentimelineio/opentimelineio/schemadef/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio/schemadef
creating build/lib.linux-x86_64-cpython-311/opentimelineview
copying src/opentimelineview/settings.py -> build/lib.linux-x86_64-cpython-311/opentimelineview
copying src/opentimelineview/console.py -> build/lib.linux-x86_64-cpython-311/opentimelineview
copying src/opentimelineview/track_widgets.py -> build/lib.linux-x86_64-cpython-311/opentimelineview
copying src/opentimelineview/ruler_widget.py -> build/lib.linux-x86_64-cpython-311/opentimelineview
copying src/opentimelineview/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineview
copying src/opentimelineview/timeline_widget.py -> build/lib.linux-x86_64-cpython-311/opentimelineview
copying src/opentimelineview/details_widget.py -> build/lib.linux-x86_64-cpython-311/opentimelineview
creating build/lib.linux-x86_64-cpython-311/opentimelineio_contrib
copying contrib/opentimelineio_contrib/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib
creating build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/advanced_authoring_format.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/burnins.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/xges.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/extern_rv.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/extern_maya_sequencer.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/rv.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/kdenlive.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/fcpx_xml.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/hls_playlist.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/ale.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/maya_sequencer.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
copying contrib/opentimelineio_contrib/adapters/ffmpeg_burnins.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
creating build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters/aaf_adapter
copying contrib/opentimelineio_contrib/adapters/aaf_adapter/aaf_writer.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters/aaf_adapter
copying contrib/opentimelineio_contrib/adapters/aaf_adapter/init.py -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters/aaf_adapter
copying src/py-opentimelineio/opentimelineio/adapters/builtin_adapters.plugin_manifest.json -> build/lib.linux-x86_64-cpython-311/opentimelineio/adapters
copying contrib/opentimelineio_contrib/adapters/contrib_adapters.plugin_manifest.json -> build/lib.linux-x86_64-cpython-311/opentimelineio_contrib/adapters
running build_ext
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Python: /opt/zou/zouenv/bin/python (found version "3.11.6") found components: Interpreter Development.Module
-- Python_INCLUDE_DIRS: /usr/include/python3.11
-- Python_VERSION: 3.11.6
-- Building static libs
-- Install C++ bindings: OFF
-- Installing Python bindings to: /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/build/lib.linux-x86_64-cpython-311/
-- Building C++ with Coverage: OFF
-- Checking git repo is available:
fatal: .git non è un repository Git (né lo è alcuna delle directory genitrici)
-- Using src/deps/Imath by default
CMake Deprecation Warning at src/deps/pybind11/CMakeLists.txt:8 (cmake_minimum_required):        Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
    Update the VERSION argument <min> value or use a ...<max> suffix to tell
    CMake that the project does not need compatibility with older versions.

  -- pybind11 v2.9.2
  -- Performing Test HAS_FLTO
  -- Performing Test HAS_FLTO - Success
  -- Imath is configuring as a cmake sub project
  -- Configure Imath 3.2.0-dev, library API version: 29.0.0
  -- Looking for sin in m
  -- Looking for sin in m - found
  -- Configuring done (0.8s)
  -- Generating done (0.0s)
  -- Build files have been written to: /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/build/temp.linux-x86_64-cpython-311
  [  7%] Building CXX object src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathColorAlgo.cpp.o
  [  7%] Building CXX object src/opentime/CMakeFiles/opentime.dir/errorStatus.cpp.o
  [  7%] Building CXX object src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/half.cpp.o
  [  7%] Building CXX object src/opentime/CMakeFiles/opentime.dir/rationalTime.cpp.o
  [  8%] Building CXX object src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathFun.cpp.o
  In file included from /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.cpp:4:
  /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.h: In function ‘constexpr double opentime::v1_0::fabs(double)’:
  /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.h:27:9: error: ‘uint64_t’ does not name a type
     27 |         uint64_t i;
        |         ^~~~~~~~
  /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.h:10:1: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
      9 | #include <limits>
    +++ |+#include <cstdint>
     10 | #include <string>
  /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.h:29:10: error: ‘union opentime::v1_0::fabs(double)::<unnamed>’ has no member named ‘i’
     29 |     bits.i &= std::numeric_limits<uint64_t>::max() / 2;
        |          ^
  /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.h:29:35: error: ‘uint64_t’ was not declared in this scope
     29 |     bits.i &= std::numeric_limits<uint64_t>::max() / 2;
        |                                   ^~~~~~~~
  /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.h:29:35: note: ‘uint64_t’ is defined in header ‘<cstdint>’; did you forget to ‘#include <cstdint>’?
  /tmp/pip-install-_dygmynz/opentimelineio_d475d1c48e3c456da038906cf4b8367b/src/opentime/rationalTime.h:29:43: error: template argument 1 is invalid
     29 |     bits.i &= std::numeric_limits<uint64_t>::max() / 2;
        |                                           ^
  [ 10%] Building CXX object src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathMatrixAlgo.cpp.o
  gmake[2]: *** [src/opentime/CMakeFiles/opentime.dir/build.make:90: src/opentime/CMakeFiles/opentime.dir/rationalTime.cpp.o] Errore 1
  gmake[1]: *** [CMakeFiles/Makefile2:275: src/opentime/CMakeFiles/opentime.dir/all] Errore 2
  gmake[1]: *** Attesa per i processi non terminati....
  [ 12%] Building CXX object src/deps/Imath/src/Imath/CMakeFiles/Imath.dir/ImathRandom.cpp.o
  [ 14%] Linking CXX static library libImath-3_2.a
  [ 14%] Built target Imath
  gmake: *** [Makefile:136: all] Errore 2
  Traceback (most recent call last):
    File "/opt/zou/zouenv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
      main()
    File "/opt/zou/zouenv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
      json_out['return_val'] = hook(**hook_input['kwargs'])
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/zou/zouenv/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
      return _build_backend().build_wheel(wheel_directory, config_settings,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 404, in build_wheel
      return self._build_with_temp_dir(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 389, in _build_with_temp_dir
      self.run_setup()
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup
      exec(code, locals())
    File "<string>", line 279, in <module>
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 103, in setup
      return distutils.core.setup(**attrs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup
      return run_commands(dist)
             ^^^^^^^^^^^^^^^^^^
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
      dist.run_commands()
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
      self.run_command(cmd)
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/wheel/bdist_wheel.py", line 368, in run
      self.run_command("build")
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build.py", line 131, in run
      self.run_command(cmd_name)
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
      self.distribution.run_command(command)
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 963, in run_command
      super().run_command(command)
    File "/tmp/pip-build-env-b4tfsaws/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
      cmd_obj.run()
    File "<string>", line 60, in run
    File "<string>", line 76, in build
    File "<string>", line 175, in cmake_install
    File "/usr/lib/python3.11/subprocess.py", line 413, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--target', 'install', '--config', 'Release', '--', '-j4']' returned non-zero exit status 2.
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for OpenTimelineIO
Failed to build OpenTimelineIO
ERROR: Could not build wheels for OpenTimelineIO, which is required to install pyproject.toml-based projects
Thanks,
L.

Hi @Aiacos!
This looks like a similar issue as in #1685.
OpenTimelineIO 0.15.0 doesn't have wheels built for python 3.11. The upcoming release should include these.
Would you be able to use python 3.10 for the time being?

I have to downgrade python version in the virtual env, but doable
When wheel for python 3.11 will be released?
Thanks
L.
Il giorno ven 5 gen 2024 alle 15:09 Daniel Flehner Heen <
@.***> ha scritto:

Hi @Aiacos https://github.com/Aiacos!
This looks like a similar issue as in #1685
https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1685.
OpenTimelineIO 0.15.0 doesn't have wheels built for python 3.11. The
upcoming release should include these.
Would you be able to use python 3.10 for the time being?
—
Reply to this email directly, view it on GitHub
https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1686#issuecomment-1878741358,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAMU56JPQ7LILHDUXZZRA5DYNACTLAVCNFSM6AAAAABBOPADB6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZYG42DCMZVHA
.
You are receiving this because you were mentioned.Message ID:
@.***
com>

Great! Sorry about the inconvenience.
The next release should be out in not too long, but I'm afraid I don't have an exact date.
I'll close this ticket for now. Please reopen if you disagree.


Add example of enabling vendor prefixes to README

It took me a few minutes to figure that the vendor prefixes weren't being added to the processed CSS. I had to look for the variable name in the code, so I added it to the README for the next developer.

Good spot, thanks!


Foreign language channels issue

I noticed this with another game, Eternal Return, where the majority of drops are non-English letter channel based. Spanish and other languages that still have English named channels do not have this issue, only what I assume is Chinese, Taiwanese, Japanese? based where the name of the channel is in their native language but the URL is English the miner does not make the distinction that there is a difference and will lock on the drop because there's technically no channel URL named "枢木リツ" and you manually have to select an English name based channel if this occurs. By Googling this example name, their Twitch URL is https://www.twitch.tv/kururugi_ritsu but the miner I assume tries to idle https://www.twitch.tv/枢木リツ
Screenshot for a better understanding.

Hello o/
That's incorrect. There already is an internal distinction between "channel login" and "channel name" implemented. What you see on the channel list is the `name`` property of a channel, that's it's "display name" if one is present, "login" otherwise. "login" of a channel is a unique channel name, from which you can access the channel's page as a URL. Both of those functions are already there:
https://github.com/DevilXD/TwitchDropsMiner/blob/c2a5db8a6a22f3f7d74f45d75d78f031aa453a5d/channel.py#L146-L154
Furthermore, to progress the drop, neither the name nor login of a channel matters - the watching payload is constructed using the "channel ID" and "broadcast ID", both of which are integers. L344-345:
https://github.com/DevilXD/TwitchDropsMiner/blob/c2a5db8a6a22f3f7d74f45d75d78f031aa453a5d/channel.py#L337-L351
In places where the channels are processed and deduplicated, their comparison function only checks their unique ID:
https://github.com/DevilXD/TwitchDropsMiner/blob/c2a5db8a6a22f3f7d74f45d75d78f031aa453a5d/channel.py#L138-L144
Thus, there is no possible way to end up with two of "the same" channels on the list. What you're referring to, has to be two entirely different channels.

My assumption about the issue cause may be wrong, but there's still an issue. The issue is not two of the same channels on the list. The issue is drops not progressing with non-English listed channels. A few examples of channels currently in my list that will not award progress through the idler but will if I Google the names and watch their stream on Twitch are...
루시멜로
한우비_()
Both of those are for Lost Ark
The one example above in the previous post, 枢木リツ, is another that I experienced it on. The Taiwan Sea of Thieves drops that mainly feature non-English character named streamers was another. Naraka is also a very Eastern game that features them. The idler shows progress but it does not actually progress on Twitch's side. The moment you swap to an English name it will progress either from start if you hadn't had progress yet or the point in which you were at prior. This is what I did step by step.
Googled the Overwatch 2 name in the first post(枢木リツ) to find their actual Twitch channel(https://www.twitch.tv/kururugi_ritsu)
Closed out the idler
Watched it on Twitch(https://www.twitch.tv/kururugi_ritsu)
It progresses normally on Twitch
Closed the stream
Opened the idler
Clicked Emongg
Verified new progress on Twitch matched idler progress for a few minutes
Switched back to the non-English channel(枢木リツ) in idler
Waited 30 minutes to make sure no delay between website and progress in idler(Idler showed 30 minutes of progress)
No progress on Twitch
Switched back to Emongg in idler
Progress restarted from the last progress Twitch showed
Progressed normally on Twitch as well as idler
Even while writing all of this since switching to the second Lost Ark streamer in this post so I could copy and paste the channel name, the idler shows progress, but Twitch does not.
https://seaofthieves.wiki.gg/wiki/Twitch_Drops#Taiwan_Tournament_Week_1_(June_28-July_1,_2023)
This is the first campaign I noticed it on since I woke up and it was stuck at 100% about 2 weeks ago. It did the same for the week 2 as well.
Hope this clears up confusion with wording in the first post. If not I can make a short video and post the link.

Idler showed 30 minutes of progress
No progress on Twitch

This is most likely due to the "progress masking" implemented in the miner, that can "pretend" to mine a drop, even though it's not actually being mined. I never implemented any limitation to the amount of time it can mask, because no practical value for it could be determined. I've explained the exact details of what's happening in #15.
The source of a drop progress update information, is caused by one of the three things: a websocket event (expected, most reliable progress info source), current drop GQL query (backup option in case no websocket event has been received), or by virtually incrementing the progress by 1 minute and restarting the timer, on a drop that's the most likely to be mined right now (progress masking). This 3rd option, called an "active drop search" in the code, is able to lie to the user about progress being made, if neither of the previous two methods were able to respond with valid data. There is a way to see which one of those three methods was used for a progress update, by running the miner in CALL verbosity mode via a -vvv startup option. This is an example of what you should see in the Output log afterwards:

Other than the miner lying about making progress, another cause of "not being able to mine drops from specific channels", is those channels having the "drops enabled" option disabled, although we can rule that out as you said you can earn progress for the channels when watched via the browser, but not via the miner.
As far as determining what can be the cause of what you're seeing, please run the miner on your side with the -vvv option enabled, until the issue happens, and then post the resulting log here.

Since no log was posted, I'm assuming this problem turned out not to be a problem after all. Closing.


option to make default deny a reject vs. block

I have found a scenario where I would like the default deny rule to use block return instead of block so that the TCP connection does not continually re-try.
It's currently hard-coded into the system, this pull request makes it an option under System / Advanced / Firewall.
Thanks!

I've thought this over a bit and I can't see any valid use case where this makes sense. You do not want the firewall to return traffic in this way by default. Craft your own rules that reject rather than using the default deny.


Improve test coverage

IMPORTANT: Where possible all PRs must be linked to a Github issue
Checklist

[x] I have written Unit tests for any new feature(s) and edge cases for bug fixes
[x] I have added any strings visible on UI components to the strings.xml file
[x] I have updated the  CHANGELOG.md file for any notable changes to the codebase
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the project's style guide
[x] I have built and run the fhircore app to verify my change fixes the issue and/or does not break the app

This PR has a lot of merge main branch messages with few files touched. Is it possible to squash all the merge commit messages? Alternatively you can create a new PR from latest main with the few code changes in this PR.

yes, i think it can be squash all the merge all the commits once approved. In File changed showing only touched files

It'll be squashed on merge b/c of the merge to main strategy, so I don't think we need to worry about that, cleaning up the message on merge should be sufficient


Description is not imported from Voyager

The bibdata json-ld context maps the description term to dc:description:
https://bibdata.princeton.edu/context.json
This is the same predicate that Hyrax uses for the description property:
https://github.com/projecthydra-labs/hyrax/blob/master/app/models/concerns/hyrax/basic_metadata.rb#L24
However, in Plum this property is mapped to (dc terms?) abstract:
https://github.com/pulibrary/plum/blob/master/app/schemas/plum_schema.rb#L5
The result is that descriptions are not brought over when importing metadata from the bibdata service.

As per slack conversation, this seems to be the plan of attack:

[ ] Rename the plum description property to abstract.
[ ] Add abstract field to bibdata json-ld document.


Changed binary libraries names for windows and linux and they are *no…

…rmally* named Lerc64.dll/so

@Nitaym  I don't know. Perhaps they have a name clash - see https://libraries.io/pypi/lerc-control .  Is there a way to ask that question to the PyPI folks? They might have their ways how to resolve name clashes, if that is the reason.

@tmaurer3 - It doesn't look like the case.
We've tested it here and verified that when installing through pip3 install in multiple computers the libraries are named Lerc64.so. Tested on Linux only though.
Do you see different results?

Hi @tmaurer3,
Please see the following log - Ran it on a clean docker:
docker run -it python /bin/bash
root@dfd546a08901:/# python
Python 3.9.0 (default, Nov 18 2020, 13:28:38)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
Collecting lerc
  Downloading lerc-0.1.0.tar.gz (567 kB)
     |████████████████████████████████| 567 kB 675 kB/s
Building wheels for collected packages: lerc
  Building wheel for lerc (setup.py) ... done
  Created wheel for lerc: filename=lerc-0.1.0-py3-none-any.whl size=571698 sha256=482b545e205058fed50cc9d7b346185995c288f4bef1a984a718030ddc8888e9
  Stored in directory: /root/.cache/pip/wheels/b7/90/75/f9d8dc6029709fc93f82845afcbedc97af2a8c68eb1f51f423
Successfully built lerc
Installing collected packages: lerc
Successfully installed lerc-0.1.0
root@dfd546a08901:/# python
Python 3.9.0 (default, Nov 18 2020, 13:28:38)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lerc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/lerc/__init__.py", line 1, in <module>
    from ._lerc import *
  File "/usr/local/lib/python3.9/site-packages/lerc/_lerc.py", line 38, in <module>
    import numpy as np
ModuleNotFoundError: No module named 'numpy'
>>> exit()
root@dfd546a08901:/# import numpy
import-im6.q16: unable to open X server `' @ error/import.c/ImportImageCommand/360.
root@dfd546a08901:/# pip install numpy
Collecting numpy
  Downloading numpy-1.19.4-cp39-cp39-manylinux2010_x86_64.whl (14.5 MB)
     |████████████████████████████████| 14.5 MB 8.5 MB/s
Installing collected packages: numpy
Successfully installed numpy-1.19.4
root@dfd546a08901:/# python
Python 3.9.0 (default, Nov 18 2020, 13:28:38)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import lerc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/site-packages/lerc/__init__.py", line 1, in <module>
    from ._lerc import *
  File "/usr/local/lib/python3.9/site-packages/lerc/_lerc.py", line 48, in <module>
    lercDll = ct.CDLL (os.path.join(dir_path, 'Lerc.so'))
  File "/usr/local/lib/python3.9/ctypes/__init__.py", line 374, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/python3.9/site-packages/lerc/Lerc.so: cannot open shared object file: No such file or directory

@Nitaym  "lerc-0.1.0" sounds outdated. There have been commits after the last release tag was set that might be relevant here. Can you run your thing using the current Lerc master instead of the last Lerc release? Also take a look at the last PR before yours. I'm not familiar with docker installs. If this should work on current master, adding a new release tag might fix it.

@tmaurer3 Installing master works. Looks like you just need to push the latest version into PyPI!

@Nitaym  Will do. Thanks for pointing this out!

Hi @tmaurer3, I see PyPi still has an older version
https://pypi.org/project/lerc/
Any update on the upgrade?


It seems space wildcard doesn't work in code search anymore

Not a bug, confusion around Regex being active...maybe that should change to a dropdown

Not a bug, confusion around Regex being active...maybe that should change to a dropdown


Gas estimation failed?

Hi, I'm following your course and got an issue at lesson 6.
It's about beginning of fund_and_withdraw.py
Here is the error code
Deploying works well but I idk why I got entry fee as 0
++
When I changed to "fund_me.fund({"from": account, "value": 2500000})" in the fund_me_withdraw.py the code works well.
I think this problem is caused by getting 0 from fund_me.getEntranceFee()
So please go over my FundMe.sol
++
I changed function getEntranceFee() to following code and it works
Idk why it works tho. Any explanation?
    function getEntranceFee() public view returns (uint256) {
        uint256 minimumUSD = 50 * 10**18;
        uint256 price = getPrice();
        uint256 precision = 1 * 10**18;
        return (minimumUSD * precision *10**18) / price;
    }                                   ^^^^^^^

ERROR CODE
$ brownie run scripts/fund_and_withdraw.py --network ganache-local

 INFO: Could not find files for the given pattern(s).
 Brownie v1.17.2 - Python development framework for Ethereum

 BrownieFundmeProject is the active project.

 Running 'scripts\fund_and_withdraw.py::main'...
 0
 The current entry fee is 0
 Funding
   File "C:\Users\name\.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\_cli\run.py", line 50, in main
     return_value, frame = run(
   File "C:\Users\name\.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\project\scripts.py", line 103, in run
     return_value = f_locals[method_name](*args, **kwargs)
   File ".\scripts\fund_and_withdraw.py", line 16, in main
     fund()
   File ".\scripts\fund_and_withdraw.py", line 12, in fund
     fund_me.fund({"from": account, "value": entrance_fee})
   File "C:\Users\name\.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\network\contract.py", line 1629, in __call__
     return self.transact(*args)
   File "C:\Users\name\.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\network\contract.py", line 1502, in transact
     return tx["from"].transfer(
   File "C:\Users\name\.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\network\account.py", line 644, in transfer
     receipt, exc = self._make_transaction(
   File "C:\Users\name\.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\network\account.py", line 727, in _make_transaction
     raise VirtualMachineError(e) from None
   File "C:\Users\name\.local\pipx\venvs\eth-brownie\lib\site-packages\brownie\exceptions.py", line 121, in __init__
     raise ValueError(str(exc)) from None
 ValueError: Gas estimation failed: 'execution reverted: VM Exception while processing transaction: revert You need spend more'. This transaction will likely revert. If you wish to broadcast, you must set the gas limit manually.

helpful_scripts.py is here
from brownie import network, config, accounts, MockV3Aggregator
from web3 import Web3
DECIMALS = 8
STARTING_PRICE =<PHONE_NUMBER>00
LOCAL_BLOCKCHAIN_ENVIRONMENTS = ["development", "ganache-local"]
def get_account():
if network.show_active() in LOCAL_BLOCKCHAIN_ENVIRONMENTS:
return accounts[0]
else:
return accounts.add(config["wallets"]["from_key"])
def deploy_mocks():
print(f"The active network is {network.show_active()}")
print(f"Deploying Mocks...")
if len(MockV3Aggregator) <= 0:
mock_aggregator = MockV3Aggregator.deploy(
DECIMALS, Web3.toWei(STARTING_PRICE, "ether"), {"from": get_account()}
)
print("Mocks Deployed!")

fund_and_withdraw.py
from brownie import FundMe
from scripts.helpful_scripts import get_account
def fund():
fund_me = FundMe[-1]
account = get_account()
entrance_fee = fund_me.getEntranceFee()
print(entrance_fee)
print(f"The current entry fee is {entrance_fee}")
print("Funding")
fund_me.fund({"from": account, "value": entrance_fee})
def main():
fund()

deploy.py
from brownie import FundMe, MockV3Aggregator, network, config
from scripts.helpful_scripts import (
get_account,
deploy_mocks,
LOCAL_BLOCKCHAIN_ENVIRONMENTS,
)
from web3 import Web3
def deploy_fund_me():
account = get_account()
# pass the price feed address to our fundme contract
# if we are on a persistent network like rinkeby, use the associated address
# otherwise, deploy mocks

if network.show_active() not in LOCAL_BLOCKCHAIN_ENVIRONMENTS:
    price_feed_address = config["networks"][network.show_active()][
        "eth_usd_price_feed"
    ]
else:
    deploy_mocks()
    price_feed_address = MockV3Aggregator[-1].address

fund_me = FundMe.deploy(
    price_feed_address,
    {"from": account},
    publish_source=config["networks"][network.show_active()].get("verify"),
)
print(f"Contract deployed to {fund_me.address}")

def main():
deploy_fund_me()

FundMe.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import<EMAIL_ADDRESS>contract FundMe {
mapping(address => uint256) public addressToAmountFunded;
address[] public funders;
address public owner;
AggregatorV3Interface public priceFeed;
constructor(address _priceFeed) {
    priceFeed = AggregatorV3Interface(_priceFeed);
    owner = msg.sender;
}

function fund() public payable {
    uint256 minimumUSD = 50 * 10**18;
    require(
        getConversionRate(msg.value) >= minimumUSD,
        "You need spend more"
    );
    addressToAmountFunded[msg.sender] += msg.value;
    funders.push(msg.sender);
    // what the ETH -> USD conversion rate
}

function getVersion() public view returns (uint256) {
    return priceFeed.version();
}

function getPrice() public view returns (uint256) {
    (, int256 answer, , , ) = priceFeed.latestRoundData();
    return uint256(answer * 10**10);
}

function getConversionRate(uint256 ethAmount)
    public
    view
    returns (uint256)
{
    uint256 ethPrice = getPrice();
    uint256 ethAmountInUsd = (ethPrice * ethAmount) / 10**18;
    return ethAmountInUsd;
}

function getEntranceFee() public view returns (uint256) {
    uint256 minimumUSD = 50 * 10**18;
    uint256 price = getPrice();
    uint256 precision = 1 * 10**18;
    return (minimumUSD * precision) / price;
}

modifier onlyOwner() {
    require(msg.sender == owner);
    _;
}

function withdraw() public payable onlyOwner {
    payable(msg.sender).transfer(address(this).balance);
    for (
        uint256 funderIndex = 0;
        funderIndex < funders.length;
        funderIndex++
    ) {
        address funder = funders[funderIndex];
        addressToAmountFunded[funder] = 0;
    }
    funders = new address[](0);
}

}

try getConversionRate(msg.value) <= minimumUSD,
"You need spend more"


Update Emissions Data by state

Currently our emissions data (nationally and for each state) only goes up to 2018, which means that we're missing three full years of emission data. We should either find  a data source that we can use that is more up to date or a way to calculate the emissions data ourselves from the underlying data.

From the source page on wri.org:

Climate Watch U.S. States GHG Emissions data are derived from the State Inventory Tool (SIT) of the U.S. Environmental Protection Agency (EPA). https://www.epa.gov/statelocalenergy/state-inventory-and-projection-tool. The data include GHG emissions from all sectors for all 50 U.S. states and District of Columbia, and have a 2-3 year lag.

So there may not be anything we can do about getting more data, other than waiting for the EPA to update it next

The EPA has a Draft Inventory of U.S. Greenhouse Gas Emissions and Sinks: 1990-2020 report with national emissions data thru 2020, which looks to have state by state data as well (though couldn't find a total table of emissions per state):
EPA.gov link: https://www.epa.gov/ghgemissions/draft-inventory-us-greenhouse-gas-emissions-and-sinks-1990-2020
PDF report:
us-ghg-inventory-2022-main-text.pdf

This is currently causing an issue with our main emissions & projection chart with missing data for 2019, 2020 and 2021:

https://www.eia.gov/environment/emissions/state/
Table 1 has data per state for each year up to 2019

@SuragNuthulapaty thank you for sharing this. EIA has indeed published emissions data for 2019. However, this data does not have the sub-category breakdowns we have in our original source.
Updated EIA data: https://www.eia.gov/environment/emissions/state/
Source data from World Resources Institute (WRI): https://datasets.wri.org/dataset/climate-watch-states-greenhouse-gas-emissions
I emailed Johannes Friedrich (WRI dataset author) to see when the next version is coming out.

I emailed Johannes and Mengpin the launched website and asked for an update on the data. They say the 2019 data will be available in mid-August

Derek has emailed the WRI folks repeatedly, most recently on January 3rd, and they haven't updated the data 😢