Software not working smoothly

Hello, I feel like the program is not functioning as well as it did before.. Could be my internet, I'm not sure.
Could you please confirm if it's running correctly? I feel like my GCDs are kind of getting delayed.. I'm able to double weave but GCDs are kind of getting pushed back..
Thanks.
Here is a sample of my log:
**2021-12-28 17:37:23.420	SocketHook	Waiting for game window to stabilize before setting up redirecting network operations.
2021-12-28 17:37:23.525	General	XivAlexander 준비 완료
2021-12-28 17:37:23.597	General	Freed game mutex \BaseNamedObjects\6AA83AB5-BAC4-4a36-9F66-A309770760CB_ffxiv_game00.
2021-12-28 17:37:23.597	General	Freed game mutex \BaseNamedObjects\6AA83AB5-BAC4-4a36-9F66-A309770760CB_ffxiv_game_common.
2021-12-28 17:37:24.276	SocketHook	Network operation has been redirected.
2021-12-28 17:37:52.439	SocketHook	13a8: API(socket)
2021-12-28 17:37:52.443	SocketHook	13a8: API(connect): <IP_ADDRESS>:54994
2021-12-28 17:37:52.959	SocketHook	13a8: 처리 시작
2021-12-28 17:37:52.959	SocketHook	13a8: Local=<IP_ADDRESS>:57629
2021-12-28 17:37:52.959	SocketHook	13a8: Remote=<IP_ADDRESS>:54994
2021-12-28 17:37:52.960	SocketHook	<IP_ADDRESS> -> <IP_ADDRESS>: 지연 시간 측정을 시작합니다.
2021-12-28 17:38:16.527	SocketHook	1584: API(socket)
2021-12-28 17:38:16.527	SocketHook	1584: API(connect): <IP_ADDRESS>:55006
2021-12-28 17:38:16.527	SocketHook	1520: API(socket)
2021-12-28 17:38:16.527	SocketHook	1520: API(connect): <IP_ADDRESS>:55006
2021-12-28 17:38:16.527	SocketHook	1520: 처리 시작
2021-12-28 17:38:16.528	SocketHook	1520: Local=<IP_ADDRESS>:57655
2021-12-28 17:38:16.528	SocketHook	1520: Remote=<IP_ADDRESS>:55006
2021-12-28 17:38:16.583	SocketHook	<IP_ADDRESS> -> <IP_ADDRESS>: 지연 시간 측정을 중지합니다.
2021-12-28 17:38:16.584	SocketHook	13a8: API(closesocket)
2021-12-28 17:38:16.638	SocketHook	1584: 처리 시작
2021-12-28 17:38:16.638	SocketHook	1584: Local=<IP_ADDRESS>:57654
2021-12-28 17:38:16.638	SocketHook	1584: Remote=<IP_ADDRESS>:55006
2021-12-28 17:38:16.638	SocketHook	1520: Local=<IP_ADDRESS>:57655
2021-12-28 17:38:16.639	SocketHook	<IP_ADDRESS> -> <IP_ADDRESS>: 지연 시간 측정을 시작합니다.
2021-12-28 17:38:26.639	SocketHook	<IP_ADDRESS> -> <IP_ADDRESS>: 10번 연속으로 지연 시간 측정에 실패해 중지합니다.
2021-12-28 17:40:15.127	AnimationLockLatencyHandler	1584: C2S_ActionRequest(034d): actionId=0030 sequence=0001 delay=0+22860062ms prevNextRelative=10000ms+
2021-12-28 17:40:15.364	AnimationLockLatencyHandler	1584: S2C_ActionEffect(03ce): actionId=0030 sourceSequence=0001 rtt=234ms pingLatency=46ms delay=75ms wait=600ms->441ms next=23:40:15.8052704
2021-12-28 17:40:17.319	AnimationLockLatencyHandler	1584: C2S_ActionRequest(034d): actionId=fbedc sequence=0002 delay=600+1588ms prevNextRelative=1513ms
2021-12-28 17:40:17.545	AnimationLockLatencyHandler	1584: S2C_ActionEffect(03ce): actionId=fbedc sourceSequence=0002 rtt=234ms pingLatency=47ms delay=75ms wait=2099ms->1940ms next=23:40:19.4857485
2021-12-28 17:43:14.676	AnimationLockLatencyHandler	1584: C2S_ActionRequest(034d): actionId=0005 sequence=0003 delay=2099+175260ms prevNextRelative=10000ms+
2021-12-28 17:43:14.861	AnimationLockLatencyHandler	1584: S2C_ActorCast: actionId=0005 time=5.000 target=101ec2ed
2021-12-28 17:43:19.306	AnimationLockLatencyHandler	1584: S2C_ActionEffect(03ce): actionId=0005 sourceSequence=0003 wait=2099ms next=23:43:21.4056595
2021-12-28 17:43:24.580	AnimationLockLatencyHandler	1584: C2S_ActionRequest(034d): actionId=00b4 sequence=0004 delay=2099+7807ms prevNextRelative=9906ms
2021-12-28 17:43:24.736	AnimationLockLatencyHandler	1584: S2C_ActorCast: actionId=0004 time=1.000 target=101ec2ed
2021-12-28 17:43:25.721	AnimationLockLatencyHandler	1584: S2C_ActionEffect(03ce): actionId=00b4 sourceSequence=0004 wait=100ms next=23:43:25.8211857
2021-12-28 17:43:42.984	AnimationLockLatencyHandler	1584: C2S_ActionRequest(034d): actionId=1304 sequence=0005 delay=100+18306ms prevNextRelative=10000ms+
2021-12-28 17:43:43.172	AnimationLockLatencyHandler	1584: S2C_ActorCast: actionId=0353 time=1.000 target=101ec2ed
2021-12-28 17:43:43.663	AnimationLockLatencyHandler	1584: S2C_ActionEffect(03ce): actionId=1304 sourceSequence=0005 wait=2099ms next=23:43:45.7623578
2021-12-28 17:44:34.244	AnimationLockLatencyHandler	1584: C2S_ActionRequest(034d): actionId=069f sequence=0006 delay=2099+49151ms prevNextRelative=10000ms+
2021-12-28 17:44:34.506	AnimationLockLatencyHandler	1584: S2C_ActionEffect(03ce): actionId=069f sourceSequence=0006 rtt=266ms pingLatency=38ms latencyEstimate=160ms delayAdjusted=76ms wait=2099ms->1909ms next=23:44:36.4150992
2021-12-28 17:44:44.687	AnimationLockLatencyHandler	1584: C2S_ActionRequest(034d): actionId=0029 sequence=0007 delay=2099+8355ms prevNextRelative=8279ms
2021-12-28 17:44:44.929	AnimationLockLatencyHandler	1584: S2C_ActionEffect(021d): actionId=0029 sourceSequence=0007 rtt=234ms pingLatency=33ms latencyEstimate=160ms delayAdjusted=74ms wait=600ms->440ms next=23:44:45.3694478

[]
XivAlexander_20211228_180414_917.log
I'm also getting the following error upon exiting the game.

Are you using antivirus? If then, which one? Also, it might be the case that opcodes are wrong, but I really can't tell. Which actions did you use, to have 5s then 1s cast times?

Are you using antivirus? If then, which one? Also, it might be the case that opcodes are wrong, but I really can't tell. Which actions did you use, to have 5s then 1s cast times?

I don't use any antivirus, only thing I have related is the default Windows defender? Which I added XivAlexander as an exception.
So looking at the opcodes, you see a problem here? Mitigation not working properly?

Log file looks like it works, but then it raises some questions for me. Which job were you playing?

Log file looks like it works, but then it raises some questions for me. Which job were you playing?

For the log above, I cannot remember as it was some random log from some point of the day. Do you mind if I quote a comment with a log I'm testing now? I have all jobs so please tell me which one is easier for you to look at.

Log file looks like it works, but then it raises some questions for me. Which job were you playing?

Do you have Networking > High Latency Mitigation > Preview Mode (Dry Run) enabled? If then, turn that off. Otherwise, try turning off High Latency Mitigation itself and see if clipping becomes worse.
If clipping does become worse after turning it off, then you might want to try other mitigation option (1, 2, or 3), and find out what feels the best. If it doesn't, that'll require additional troubleshooting.

Do you have Networking > High Latency Mitigation > Preview Mode (Dry Run) enabled? If then, turn that off. Otherwise, try turning off High Latency Mitigation itself and see if clipping becomes worse.
If clipping does become worse after turning it off, then you might want to try other mitigation option (1, 2, or 3), and find out what feels the best. If it doesn't, that'll require additional troubleshooting.

Hello, thank you for the reply.
I do not have the 'dry run' option enabled.
If I turn off 'High Latency Mitigation', it becomes literally impossible to double weave. So I presume that means XivAlexander is working?
I just don't know which mode (1, 2 ,3) to use. I tried using each of them but couldn't notice a difference.

Well, can you double weave without clipping? If you can't double weave, let me know your GCD and framerate.

Well, can you double weave without clipping? If you can't double weave, let me know your GCD and framerate.

Hi, I feel like there is a slight clipping if I double weave. But I don't know if I can 'objectively' confirm that it clips..?
For instance, I'm able to use 5 fellcleaves under inner release while double weaving for each fell cleave. But it feels kind of stuck and lggy.
My GCD is 2.41 and FPS around 90.

Reading the log lines, it looks like it's working correctly. You might want to upload your striking dummy logs to FFLogs and share it, by setting log visibility to Unlisted and sharing it in Anonymous mode.

Reading the log lines, it looks like it's working correctly. You might want to upload your striking dummy logs to FFLogs and share it, by setting log visibility to Unlisted and sharing it in Anonymous mode.

https://www.fflogs.com/reports/dRaBY6p9JvNFrPHg/#fight=3&type=casts&source=65
are you able to view it?

Yes, but you will want to change it to Unlisted. Try clicking on gear icon on the top of the page.

Yes, but you will want to change it to Unlisted. Try clicking on the ~gear~ pencil icon on the top of the page.

Done, thank you.

Only considering intervals between GCDs, they average around 2.416, with median value of 2.409. I'd say you aren't clipping much, and you should be good to go

Only considering intervals between GCDs, they average around 2.416, with median value of 2.409. I'd say you aren't clipping much, and you should be good to go

Thank you!

Only considering intervals between GCDs, they average around 2.416, with median value of 2.409. I'd say you aren't clipping much, and you should be good to go

Wait, how do I get a median of 2.409 when my GCD is higher (2.41) lol. Is it just minor error?

Timestamp logged from ACT may not be accurate to 0.01s units, so it can be expected.

Timestamp logged from ACT may not be accurate to 0.01s units, so it can be expected.

Thank you for all the help. So can I consider the average of 2.416 to be negligible?

Yes, that sounds about right. Next patch should help reducing that further to be closer to 2.410.

Yes, that sounds about right. Next patch should help reducing that further to be closer to 2.410.

Thank you so much for all the help, happy holidays.

Yes, that sounds about right. Next patch should help reducing that further to be closer to 2.410.

Do you mean the next game's path or XivAlexander's?

Next XivAlexander release.


Missing definitions for curation notebook (containers)

egeria-server-config:
Step 20 fails with:
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-20-e1ca9924963d> in <module>
     57                                       {
     58                                            "class" : "Endpoint",
---> 59                                            "address" : folderConnectorFolder
     60                                       }
     61                                  }

NameError: name 'folderConnectorFolder' is not defined

This variable does not appear to be defined in the notebooks.
Adding something like folderConnectorFolder='./data/files' allowed this to continue
However with this done, step 7 in the curation notebook fails with:
getGovernanceEngineStatuses(governDL01Name, governDL01PlatformName, governDL01PlatformURL, petersUserId)
returning
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-7-f354e67e5414> in <module>
----> 1 getGovernanceEngineStatuses(governDL01Name, governDL01PlatformName, governDL01PlatformURL, petersUserId)

NameError: name 'getGovernanceEngineStatuses' is not defined

I don't see any definition of that function in master so I suspect there was a file missed from the checkin?

@planetf1 the notebook is not complete - I have added another PR to move the "Stop do not use" back up to the top of the notebook.

I noted the issues occurred in the config notebook which is used for all our scenarios. The new notebook was a subsequent problem
We need a fix in config before branching?

OK - let me look at the config notebook

I am puzzled because this value is defined on the the line above.

Found it - it should be dataLakeConnectorFolder in the first use.
The folderConnectorName is defined just below.

Just run the building an asset catalog with the reconfigured servers and it ran ok

Looking at getGovernanceEngineStatuses - this method is in environment-check and has been around a long time.  I can not get it to fail so not sure why this is a problem.  This function call is also working in the Improving DataQuality Lab too.

Making progress - I had renamed getGovernanceEngineStatuses to printGovernanceEngineStatuses.  This is what these notebooks should have been calling.  However the old name must be cached somewhere because the different notebooks that use it are working correctly on my machine.

To ensure you avoid caching you can restart the kernel in Jupiter which should clean out the definitions. Otherwise they stay around


Wrong error management when destroying a compute site

I tried to destroy Cyfronet prod compute site on cloud-dev deployment (it should not be listed there since there is now a dedicated Atmosphere that manages that CS), and I couldn't remove it due to forbidden message ("You are not allowed to delete the image"). Which might or might not be ok.
The system, instead of showing me that flash error, went 500.
Part of the stack trace:
I, [2015-05-12T17:51:51.273601 #2746]  INFO -- : Completed 500 Internal Server Error in 129ms (ActiveRecord: 15.0ms)
F, [2015-05-12T17:51:51.451184 #2746] FATAL -- :
Excon::Errors::Forbidden (Expected(204) <=> Actual(403 Forbidden)
excon.error.response
  :body          => "{\"forbidden\": {\"message\": \"You are not allowed to delete the image.\", \"code\": 403}}"
  :headers       => {
    "Content-Length"       => "83"
    "Content-Type"         => "application/json; charset=UTF-8"
    "Date"                 => "Tue, 12 May 2015 13:52:53 GMT"
    "X-Compute-Request-Id" => "req-c9ab8cbc-e54c-4b2a-9569-48c85a1a4127"
  }
  :local_address => "<IP_ADDRESS>"
  :local_port    => 50808
  :reason_phrase => "Forbidden"
  :remote_ip     => "<IP_ADDRESS>"
  :status        => 403
):
  vendor/bundle/ruby/2.1.0/gems/excon-0.45.1/lib/excon/middlewares/expects.rb:6:in `response_call'
  vendor/bundle/ruby/2.1.0/gems/excon-0.45.1/lib/excon/middlewares/response_parser.rb:8:in `response_call'
  vendor/bundle/ruby/2.1.0/gems/excon-0.45.1/lib/excon/connection.rb:372:in `response'
  vendor/bundle/ruby/2.1.0/gems/excon-0.45.1/lib/excon/connection.rb:236:in `request'
  vendor/bundle/ruby/2.1.0/gems/fog-core-1.30.0/lib/fog/core/connection.rb:81:in `request'
  vendor/bundle/ruby/2.1.0/gems/fog-1.29.0/lib/fog/openstack/compute.rb:351:in `request'
  vendor/bundle/ruby/2.1.0/gems/fog-1.29.0/lib/fog/openstack/requests/compute/delete_image.rb:6:in `delete_image'
  vendor/bundle/ruby/2.1.0/gems/fog-1.29.0/lib/fog/openstack/models/compute/image.rb:44:in `destroy'
  vendor/bundle/ruby/2.1.0/gems/fog-core-1.30.0/lib/fog/core/collection.rb:56:in `destroy'

@Nuanda cs delete feature is not well tested. We actually never used this on production. Is there a confirm dialog with a warning that all images and vms on this that are manged by Atmo will be deleted? Maybe we should rethink the destroy cascade?

This is rather about properly managing the error message as a flash notification for the user.

When this particular fog error is triggered? Can I somehow "simulate" it on my dev machine?

#136 is related to this.


NextJS 10 Multiple random issues "Could not find instance of React in given element"

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>node: v14.15.1

Create simple nextjs app by yarn create next-app --example with-typescript .
create a test case.
Could not find instance of React in given element will be thrown at random intervals
describe('App tests', () => {
  before('Visits the homepage', () => {
    cy.visit('/');
    cy.viewport(800, 600);
    cy.waitForReact();
  });

  it('Locate Bob', () => {
    cy.react('Link').should('contain', 'Users List');
    cy.react('Link').contains('Users List').click();

    cy.react('Link').should('contain', '102: Bob');
    cy.react('Link').contains('102: Bob').click();

    cy.react('ListDetail').should('contain', 'Detail for Bob');
    cy.getReact('ListDetail')
      .getProps('item')
      .should('eql', { id: 102, name: 'Bob' });
  });
});

hi @FDiskas , thanks for using the library. Have you tried defining the configuration as stated here?

Sure.

Hi @FDiskas , it is possible that the react root css selector is not #root. Can you check if this is something else?

I was yesting on this repo
https://github.com/FDiskas/devtalks-e2e/tree/cypress
Nexjs root is __next and im sure that it matched setting in my test

Thanks @FDiskas for sharing the repo. I will take a look.

I played around a bit. I found issue #251. I also found that a minified build had no problems finding a React instance, but an unminified build did. Is Next.js doing something odd?
resq looks for keys/properties on the React root HTML element, either _reactRootContainer or something beginning with _reactInternalInstance or _reactFiber. Stepping through in a debugger, the HTML element has no iterable keys. 🤷♂

Hi @bkirove, as this PR is merged and a new version of resq is released, can you give it a try for this problem and raise a PR?

I updated the test project https://github.com/FDiskas/devtalks-e2e/tree/cypress with all dependencies as the newest
Still didn't manage to work it properly - the same error


DDRMenu - Remove Dependency on DotNetNuke.Web.Razor

Part of: #2599
Description of problem
DotNetNuke.Modules.DDRMenu is dependent on DotNetNuke.Web.Razor which is marked for deletion in DNN 11.0 as part of the Razor Pages Pipeline Implementation.
The DDRMenu uses the RazorEngine which we can swap out to use the default Microsoft Implementation or Razor Pages.
public void Render(object source, HtmlTextWriter htmlWriter, TemplateDefinition liveDefinition)
{
    if (!(string.IsNullOrEmpty(liveDefinition.TemplateVirtualPath)))
    {
        var resolver = new PathResolver(liveDefinition.Folder);
        dynamic model = new ExpandoObject();
        model.Source = source;
        model.ControlID = DNNContext.Current.HostControl.ClientID;
        model.Options = ConvertToJson(liveDefinition.ClientOptions);
        model.DNNPath = resolver.Resolve("/", PathResolver.RelativeTo.Dnn);
        model.ManifestPath = resolver.Resolve("/", PathResolver.RelativeTo.Manifest);
        model.PortalPath = resolver.Resolve("/", PathResolver.RelativeTo.Portal);
        model.SkinPath = resolver.Resolve("/", PathResolver.RelativeTo.Skin);
        var modelDictionary = model as IDictionary<string, object>;
        liveDefinition.TemplateArguments.ForEach(a => modelDictionary.Add(a.Name, a.Value));

        var razorEngine = new RazorEngine(liveDefinition.TemplateVirtualPath, null, null);
        var writer = new StringWriter();
        razorEngine.Render<dynamic>(writer, model);

        htmlWriter.Write(writer.ToString());
    }
}

The line that is using DotNetNuke.Web.Razor is:
var razorEngine = new RazorEngine(liveDefinition.TemplateVirtualPath, null, null);

Description of solution
Ideally the new implementation of this code will use Microsoft's System.Web.Razor. If that does not work we will use the new Razor Pages Modules

DO we believe this is possible to support for a 10.0 release?  I assume some breaking changes could be experienced?

@mitchelsellers

DO we believe this is possible to support for a 10.0 release?

It is possible in my opinion to remove the Dependency on DotNetNuke.Web.Razor but the problem will be all modules in the wild using DDRMenu's Razor Templates. We would need to require those to update as the assembly is referenced right in the razor template. If you are unfamiliar with how DDRMenu Razor Templates work, take a look at the docs
Here is an example of what a DDRMenu Razor Template looks like:
@using DotNetNuke.Web.DDRMenu;
@using System.Dynamic;
@inherits DotNetNuke.Web.Razor.DotNetNukeWebPage<dynamic>

@{ var root = Model.Source.root; }

@helper RenderNodes(IList<MenuNode> nodes) {
  if (nodes.Count > 0) {

      @foreach (var node in nodes)
      {
        var cssClasses = new List<string>();
        if (node.First) { cssClasses.Add("first"); }
        if (node.Last) { cssClasses.Add("last"); }
        if (node.Selected) { cssClasses.Add("selected"); }

        var classString = new HtmlString((cssClasses.Count == 0) ?
          "" : (" class=\"" + String.Join(" ", cssClasses.ToArray()) + "\""));

          @if (node.Enabled)
          {
            <a href="<EMAIL_ADDRESS>          }
          else
          {
            @node.Text
          }

          @RenderNodes(node.Children)

      }

  }
}

@RenderNodes(root.Children)

At the top of the file it calls DotNetNuke.Web.Razor directly
@inherits DotNetNuke.Web.Razor.DotNetNukeWebPage<dynamic>

In my proposed solution we would require this line to be updated to use the new Razor Pages model which may greatly simplify this. There really are still a lot of unknowns to guarantee anything with Razor Pages.
However, I believe we can leverage existing RazorEngine from Microsoft assemblies. What we know as the RazorEngine in DNN is really just a wrapper for DotNetNuke.Web.Razor.DotNetNukeWebPage. See snippet below:
public abstract class DotNetNukeWebPage<TModel> :DotNetNukeWebPage where TModel : class
{
    private TModel _model;

    public new TModel Model
    {
        get { return _model ?? (_model = PageContext.Model as TModel); }
        set { _model = value; }
    }
}

The RazorEngine has a Render method that calls the underlying System.Web.WebPages implementation. This is a feature that is supported out of the box in Microsoft assemblies. We really should be able to include a patch for this module for DNN 10.0.0 that removes the Razor Engine and uses the underlying System.Web.WebPages implementation.
My concern with this patch is it will still contain a breaking change as the developers will need to update namespaces and such.
My Proposal
I do not think we patch this module for 9.x.x or 10.x.x. I recommend that once DNN 10.0.0 is released and Razor Pages is Generally Available, we migrate the API from DotNetNuke.Web.Razor -> Razor Pages and make any updates that need to be done at that time.
This proposal would result in only 1 breaking change which would occur at 11.0.0 which is what is being promised in #2618

I created #2637 which will cover backwards compatibility for DDRMenu and provide developers a soft migration path away from DotNetNuke.Web.Razor

When it is time to fully remove the dependency of DotNetNuke.Web.Razor we need to update the code change from #2637 to throw an exception that the template must inherit from System.Web.WebPages.WebPage

So should this issue be in the 10 milestone or 11 milestone ? Just trying to get all possible issues into a milestone :)

I put this as 11.0 for now

@mitchelsellers if we get Razor Pages in for v10, full-feature and no feature flag could we try to get this in for v10? I'm not making any promises as I plan to PR Razor Pages behind a Feature Flag, but if are comfortable going all the way with it, we should make sure goes at the same time.

@ahoefling milestones are not set in stone, I am just trying to get every issue into one milestone to be able to vaguely scope the amount of work, no engagement :) Putting it hopefully for 10, but it can change.

This is still a valid work item and we are waiting for the Razor Pages PR to be submitted, which I will try and get to over the next couple months


Failed to load images in entries through proxy

Hi,
I need to fetch some feeds throught proxy, with elfeed-curl-extra-arguments being set, it works.
But it can't load the images in the entries when I read them,
I have tried to set env like below, but it can't help:
(let ((proxy "socks5h://localhost:1080"))
  (setenv "http_proxy" proxy)
  (setenv "https_proxy" proxy)
  (setenv "HTTPS_PROXY" proxy))

How can I properly set it up? Thanks.

And below code doesn't help neither:
(setq url-gateway-method 'socks)
(setq socks-server '("Default server" "<IP_ADDRESS>" 1080 5))

Is there any way for manually loading the image, like i in w3m?
I found no such binding with C-h m.

Elfeed uses curl (when available) to download feeds, but when you view
entries with elfeed-show-mode it uses eww to render it. Therefore
external content is fetched by Emacs itself via the usual means. I
think the configuration you tried with url-gateway-method should do
the trick, or at least something with url-proxy-services.
However, it looks like prior to Emacs 26 there's an Emacs bug that
prevents eww from using this configuration:
https://emacs.stackexchange.com/questions/19161/eww-cannot-access-https-sites-via-proxy
That may be the source of your problem.

I fix this problem by using privoxy to "translate" socks to http proxy,
then set url-proxy-services for elfeed-show-mode buffer:
(add-hook 'elfeed-show-mode-hook
          #'(lambda ()
              (setq-local url-proxy-services '(("http" . "<IP_ADDRESS>:8118")
                                               ("https" . "<IP_ADDRESS>:8118")))))

Thanks.
P.S. My Emacs is 26.1 already.


Easier loop time set

What about somethign like: loop from current time to [user goes to otehr time and submits

Or even: one button to set the start time and one button to set the end time (it uses the current video time).
This would be easier for me (to program) and the user (to use).


A small refactoring

Hello.
In this pull request I made UIView.addParallaxMotionEffects more compact and optimized other functions.

Thank you very much for you contribution. We will consider such code improvement in the future. For now we will stick with the current implementation as is more compact.


Set default storage tier to first data tier

Instead of setting the default pool to system, we now behave similar
to the default policy settings. If there is a data pool other than
system it will default to the first one it finds.
Pull request checklist

Pull request type

Please check the type of change your PR introduces:

[x] Bugfix
[ ] Feature Enhancement
[ ] Test Automation
[ ] Code Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Community Operator listing
[ ] Other (please describe):

What is the current behavior?

Defaulting to system pool even if there are data pools that policy file typically would default to. This makes the behavior consistent

What is the new behavior?

How risky is this change?

[ ] Small, isolated change
[x] Medium, requires regression testing
[ ] Large, requires functional and regression testing

@drolsonibm any target to get this PR merged in dev ?


Document the structs in the embedder API that are sealed.

This can be done via comments in the header. Most struct members are safe to modify by appending members at the end of the struct. However, some are not (these are the ones without struct_size or the ones that are non-pointer union members in other structs.)

We could also unit-test them for added assurance (e.g., have a test that asserts that the address of the first member plus the size of the struct is the same as the address of the expected last member plus the size of that member).


RGL toolkit wrappers need default values

https://github.com/vais-ral/CCPi-Framework/blob/ca1147e8901abb9cb81ebd40190d3fc814d18b13/Wrappers/Python/cil/plugins/ccpi_regularisation/functions/regularisers.py#L70
compare with the CIL implementation:
https://github.com/vais-ral/CCPi-Framework/blob/ca1147e8901abb9cb81ebd40190d3fc814d18b13/Wrappers/Python/cil/optimisation/functions/TotalVariation.py#L60-L67
The names also need updating and standardising.

FGP_dTV need updating for papers


Support for Python 3.12

Blocked by https://github.com/dask/distributed/pull/8223

requires https://github.com/dask/distributed/pull/8223/files#diff-3b1a0d09b95e5e870b6962e81a2682ba3805afb0a134c642259b8162dd94e2acR220 to pass

@graingert there seems to be a genuine failure

@graingert also missing changes to pyproject.toml

FAILED dask/array/tests/test_array_core.py::test_setitem_hardmask - AssertionError: {('array-ca2bfc119ac07031ee36eb791623951f',): 2} assert not {('array-ca2bfc119ac07031ee36eb791623951f',): 2} seems to fail every time on windows


[Question] Wiki with colour schemes?

How about creating a wiki page to illustrate some example colour schemes?
For instance, this the relatively minimal theme I use on my phone (please excuse the DPI):
Default view

With selections

color_dialog_bg=magenta
color_dialog_fg=black
color_help_desc_bg=normal
color_help_desc_fg=gray
color_help_keys_bg=normal
color_help_keys_fg=white
color_highlighted_text_bg=black
color_highlighted_text_fg=magenta
color_message_quoted_fg=0xa0a0a0
color_quoted_text_bg=normal
color_quoted_text_fg=gray
color_regular_text_bg=normal
color_regular_text_fg=normal
color_selected_item_bg=
color_selected_item_fg=gray
color_top_bar_bg=normal
color_top_bar_fg=gray

And I replaced magenta with something else in other nmail accounts so that I can easily distinguish which account I'm in:

I no longer send emails with the wrong account (which happened a few times before colour support)!

How about creating a wiki page to illustrate some example colour schemes?

I think that's a great idea! Initially I was thinking color schemes could be bundled with nmail itself, under its themes/ directory. But, I think using a wiki is probably more user-friendly and easier to maintain as well.
I'll try create a github wiki-page and some structure for sharing color schemes. I'll update here once something is in place.

I've created some very basic structure for the wiki now.
The color themes section is at https://github.com/d99kris/nmail/wiki/Themes
Feel free to add content, and if any structural changes are needed - perhaps we can discuss here in this issue.
I'll close this issue first, but let's re-open it if/when needed.


Add manifests url

Fixes #51

Ok, this looks correct to me. Sorry for missing it the first time around. Here's the manifest that tests generated, and I couldn't see any issues. LMK if you see anything wrong.
{
    "label": {
        "@none": [
            "baz"
        ]
    },
    "metadata": [
        {
            "label": {
                "@none": [
                    "Date"
                ]
            },
            "value": {
                "@none": [
                    "January 1, 2020"
                ]
            }
        }
    ],
    "thumbnail": [
        {
            "id": {
                "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_001/square/200,/0/default.jpg",
                "@type": "dctypes:Image",
                "format": "image/jpeg",
                "height": 200,
                "width": 200,
                "service": {
                    "@context": "http://iiif.io/api/image/2/context.json",
                    "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_001",
                    "profile": "http://iiif.io/api/image/2/level2.json"
                }
            },
            "type": "Image"
        }
    ],
    "type": "Manifest",
    "id": "https://iiif.rockarch.org/manifests/asdfjklmn",
    "items": [
        {
            "@id": "https://iiif.rockarch.org/manifests/asdfjklmn/canvas/0001",
            "@type": "sc:Canvas",
            "label": "Page 1",
            "thumbnail": {
                "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_001/square/200,/0/default.jpg",
                "@type": "dctypes:Image",
                "format": "image/jpeg",
                "height": 200,
                "width": 200,
                "service": {
                    "@context": "http://iiif.io/api/image/2/context.json",
                    "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_001",
                    "profile": "http://iiif.io/api/image/2/level2.json"
                }
            },
            "height": 4478,
            "width": 3503,
            "images": [
                {
                    "@id": "https://iiif.rockarch.org/manifests/annotation/asdfjklmn_001.json",
                    "@type": "oa:Annotation",
                    "motivation": "sc:painting",
                    "resource": {
                        "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_001/full/max/0/default.jpg",
                        "@type": "dctypes:Image",
                        "format": "image/jpeg",
                        "height": 4478,
                        "width": 3503,
                        "service": {
                            "@context": "http://iiif.io/api/image/2/context.json",
                            "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_001",
                            "profile": "http://iiif.io/api/image/2/level2.json"
                        }
                    },
                    "on": "https://iiif.rockarch.org/manifests/asdfjklmn/canvas/0001"
                }
            ]
        },
        {
            "@id": "https://iiif.rockarch.org/manifests/asdfjklmn/canvas/0002",
            "@type": "sc:Canvas",
            "label": "Page 2",
            "thumbnail": {
                "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_002/square/200,/0/default.jpg",
                "@type": "dctypes:Image",
                "format": "image/jpeg",
                "height": 200,
                "width": 200,
                "service": {
                    "@context": "http://iiif.io/api/image/2/context.json",
                    "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_002",
                    "profile": "http://iiif.io/api/image/2/level2.json"
                }
            },
            "height": 4478,
            "width": 3503,
            "images": [
                {
                    "@id": "https://iiif.rockarch.org/manifests/annotation/asdfjklmn_002.json",
                    "@type": "oa:Annotation",
                    "motivation": "sc:painting",
                    "resource": {
                        "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_002/full/max/0/default.jpg",
                        "@type": "dctypes:Image",
                        "format": "image/jpeg",
                        "height": 4478,
                        "width": 3503,
                        "service": {
                            "@context": "http://iiif.io/api/image/2/context.json",
                            "@id": "https://images.rockarch.org/iiif/2/asdfjklmn_002",
                            "profile": "http://iiif.io/api/image/2/level2.json"
                        }
                    },
                    "on": "https://iiif.rockarch.org/manifests/asdfjklmn/canvas/0002"
                }
            ]
        }
    ],
    "@context": [
        "http://www.w3.org/ns/anno.jsonld",
        "http://iiif.io/api/presentation/3/context.json"
    ]
}


Fix #49 - Update contribution guidelines

Coverage remained the same at 97.556% when pulling e83cfafc86fcf7e0246abffc2485a843d7510af2 on contribution-template into 9e66ed8b5a5de814079c45113df5f7de7eb0390a on master.


rm excessive tx length check

Purpose of Changes and their Description
I think checkInputLength(), a check of the total msg size on each data ingress, is redundant and partially causing slowdowns at scale, shown here edited in Guilherme’s recent PR
Our profiling shows a lot of marshalling taking up precious memory, and this check is on every singple data ingress => easily could be one of the culprits. This check marshalls the entire proto msg afterall.
Meanwhile, there are configs to handle this already in config.toml and app.toml e.g. max_tx_bytes and gas-related params and market action. We obviosuly didn’t know this when we first added these checks.
Link(s) to Ticket(s) or Issue(s) resolved by this PR
Are these changes tested and documented?

[ ] If tested, please describe how. If not, why tests are not needed.
[ ] If documented, please describe where. If not, describe why docs are not needed.
[x] Added to Unreleased section of CHANGELOG.md?

It looks like TestMsgServerTestSuite -> TestInsertingHugeBundleWorkerPayloadFails is not passing. It would be nice if we could somehow capture the max_tx_bytes enforcement for that test in the unit test environment, but I am not sure how to do so / if that is possible.

We could look at the length of strings in the protos and enforce a stateful validation that uses a new max_string_length param @relyt29

I vote for keeping proto.Size then, unless we can get a unit test that confirms max_tx_bytes is enforced
even if it isn't I think max_tx_bytes is up to each validator separately, don't want beefier validators causing issues for less beefy validators

Cancelling in favor of https://github.com/allora-network/allora-chain/pull/630 , which is aligned with all the suggestions above!


[breaking change] Change return type of unsignedRightShift

Intended Change
dart:js_interop's unsignedRightShift should now return an int instead of a JSNumber.
dart:js_interop exposes an unsignedRightShift operator to be consistent with the dart:js_util API. It currently returns a JSNumber, but is always an integer value. Therefore, it should be an int.
Justification
Number and boolean conversions are a no-op in the JS compilers and fast in dart2wasm. Since the common use case will be to convert the JSNumber to an int, we should offer an easier API for users so they don't have to convert the value with a .toDartInt call. This is also consistent with the other exposed operators which return bool when the operator always returns a boolean value.
Impact
Minimal. There are no usages in google3, in Flutter, in the SDK, or on GitHub.
Mitigation
Convert the resulting int to a JSNumber with toJS if you still need the JSNumber type e.g.
JSNumber n = 10.toJS.unsignedRightShift(1.toJS);

JSNumber n = 10.toJS.unsignedRightShift(1.toJS).toJS;

As you say, if it returns an int, then you'll need to convert it back to JS if you want to continue doing JS operations on it.
That'd be something like x.toJS.unsignedRightShift(8.toJS).toJS.bitwiseAnd(255.js).
On Wasm, converting back and forth is not free.
Would it make sense to also have a version which returns the same result as a JSNumber?
x.toJS.unsignedRightShiftJS(8.toJS).bitwiseAnd(255.js).
(Generally I'd prefer if the API kept values as JS values until the user requested a conversion to Dart value. Implicit conversion, especially if only in some cases, is harder to reason about.)

Agreed that this is dependent on several factors. Some considerations:

Whether the value is a boolean/number or some other type. The former two, while not free in dart2wasm, are much faster. Of course, if the conversion is in a busy loop, the discrepancy grows.
Whether the user can write a member themselves. This is part of why we were okay with making package:web use Dart primitive types instead of only JS types. Users can write package:web members themselves if they wanted JS types.
How the member is commonly used. If users would almost always convert to a Dart type anyways e.g. instanceOfString to type-check, it makes sense to write the Dart type.
Consistency with other similar members.

These operators were added to support the interop API surface that already existed, so that users could migrate away from dart:js_util for dart2wasm.
In this case:

It returns a number.
Users can't write these operators themselves today, which may mean we want to make them JS types.
The usage of these operators are so low that we don't really have any data to pull from. They were added in dart:js_util to handle a specific use-case internally. I've seen maybe a handful of users use them externally.
Other operators that always return a boolean value return bool in dart:js_interop, but we can certainly change that, and if we don't make this change, I'll want to change the other operators for consistency. Members like typeofEquals return bool, but those members are quite different from operators.

cc @mkustermann

@lrhn I think you convinced me of making these operators use JS types everywhere. :)
If users didn't care about conversion costs with operators, they can use many of the Dart-equivalent operators anyways, so I suspect any use of these operators will be in cases where users would rather avoid the conversion cost. Furthermore, unlike typeofEquals or similar methods, I expect operators to compose each other e.g. b1.and(b2.or(b3)), so the conversions would add up.
So instead, I'm filing 55267 to break the two APIs that return a bool and closing this. Note that there are a number of other operators that return bool that aren't mentioned in that breaking change. These were already somewhat broken in 3.3 and therefore do not require a breaking change. See https://github.com/dart-lang/sdk/issues/55024.


Fix for nc_set_log_level() empty function warning in cmake build

Fixes #1051.
Simple fix for warning found by @gsjaardema in cmake build.

This looks reasonable.  Is there ever a reason for NC_SETLOGLEVEL define to not be defined.  In other words can the ifdefs just be removed?

OK, still some problems with the cmake build. I will take this down while I deal with them...


Cannot replace variables with values of type map from another class (sometimes)

This sounds complicated, because it is. Let me explain.
Imagine you have to classes A and B:
---
a:
  location: westeurope

---
b:
  spokes:
    - location: ${a:location}

And finally a target which uses both of these classes:
---
target:
  skipper:
    use:
      - a
      - b
  spokes: ${b:spokes}

Compliation of this setup would sometimes pass and sometimes fail with this error:
unexpected node type map[string]interface {} at index 2

@alxndr13 and myself spent together around 10 hours debugging this and so far this is what we got:

The error gets thrown by the GetPath function when invoked from the RaplaceVariables function.
Whether the compile passes or not depends on the order in which variables get replaced (which is random, so in this case 50/50 since we only have two vars)

If the value of b.spokes[0].location gets replaced before the value of target.spokes, the compile would pass.
If the value of target.spokes gets replaced before the value of b.spokes[0].location, the compile fails.

In case the compile passes, the variable replacement loop finishes after the first iteration, because there are no variables left to replace.
In case the compile fails, the variable replacement loop would do a second iteration and try to replace the apparently new variable target.spokes[0].location.
The GetPath function then throws an error because the type of the value of target.spokes[0].location is map[string]interface {} and for some reason not skipper.Data.
We suspect that the setPath function somehow messes up the data type of the map value that gets inserted into the tree. More specifically, the YAML marshalling and unmarshalling seems to be the issue. If you remove that, the compile always passes, regardless of the order the variables get replaced in.

I remember the YAML marshalling and unmarshalling being added for a specific use case we had. Our custom wrapper for Skipper accessed the SetPath function to inject custom data transformations which otherwise would not get structured correctly (see https://github.com/lukasjarosch/skipper/pull/70)

With the YAML marshalling removed, the variable replacement loop only runs one iteration, regardless of the order the variables get replaced in.

It is unclear to us why this affects the variable discovery. My suspicion is that the YAML marshalling somehow affects what the FindValues function determines to be a value.

We are planning to continue investigating what exactly the problem is here since we don't fully understand it yet. But maybe you have already an idea, @lukasjarosch.

Thank you for reporting this and huge respect for already spending so much time debugging this ❤.
I was able to reproduce the bug with your example.
You were, right about the fact that the variable replacement is random. And that is also the reason this happens.
The underlying issue is that variable replacement is rather naively implemented by simply brute-forcing and replacing
variables as long as variables can be found. Hence, the two cases arise.
Case 1 ✅

ReplaceVariables is called
Enter replacement loop

FindVariables is called --------------------------------------
2 Variables are found:

${a:location} at spokes
${b:spokes} at b.spokes.0.location

replaceVariable is called for variable a

this ultimately calls SetPath() which in turn calls yaml.Marshal
So the value westeurope is yaml marshalled, which doesn't change the type (string)

replaceVariable is called for variable b

this also calls SetPath which again calls yaml.Marshal
the value at b.spokes is a slice of skipper.Data maps (Data{"location": "westeurope"}})
after marshalling the value is of type map[string]interface{} (map[string]interface{}{"location": "westeurope"})
because the yaml marshaller obviously doesnt use skipper Data (which is only a map[string]interface{} anyway).

FindVariables is called --------------------------------------

no variables found, done ✅

Case 2 💥

ReplaceVariables is called
Enter replacement loop

FindVariables is called --------------------------------------
2 Variables are found (❗ note that the order changed ❗ ):

${b:spokes} at b.spokes.0.location
${a:location} at spokes

replaceVariable is called for variable a

same behavior as replacing variable b in case 1, but the content of the map is different
It is now: map[string]interface{}{"location": "${a:location}"} because the location variable has not yet been replaced
☝🏼  This introduces a third variable which is not known at this iteration

replaceVariable is called for variable b

spokes.0.location now has the value westeurope

FindVariables is called --------------------------------------
1 Variable is found

${a:location} at spokes.0.location

💡 This is where things go bad. If you remember: spokes.0.location is a map[string]interface{} and not skipper.Data. This is significant in that neither GetPath nor SetPath support that type which in turn causes them to fall-back into the default case, which is where the error originates from.

Ultimately the issue arises from variables which point to variables are not properly resolved and replaced in order.
This would've prevented that situation from happening.
I've implemented a fix here: https://github.com/lukasjarosch/skipper/pull/79
Can you verify if that fix works for you?


Trying to load a partially recorded benchmark from disk raises ValueError

This code
benchmark_path = "tmp-benchmark.json"
mbbm = MatbenchBenchmark.from_file(benchmark_path)

raises
ValueError: Cannot validate task matbench_jdft2d unless all folds recorded!; folds [0, 2, 3, 4] not recorded!

if
mbbm.to_file(benchmark_path)

was previously written to disk with only some folds recorded.
For the purpose of splitting folds into slurm array jobs, it would be very useful if it was possible to read and write partial benchmarks. I tried commenting out the validation line
https://github.com/materialsproject/matbench/blob/c3b910e4f06b79eea1a8a6c7b67ea5a605948306/matbench/task.py#L214
and everything appears to be working fine. The line probably has a purpose but perhaps that could be achieved differently while also allowing partial benchmark writing?

This is a good point. I never really considered people would be using Matbench in a parallel fashion but now that they are it makes sense to think of a more comprehensive and robust solution. I'll do some thinking on my side but if you have ideas for how to do this while still allowing validation on loading I'm open to suggestions
Something off the top of my head is just introducing a conditional that will validate only if all folds are recorded. The purpose of the validation is to really check for any possible errors before it is saved as a complete benchmark (and used by the doc builder to actually create the docs) to avoid downstream debugging chaos. But I can't immediately forsee any scenario where the benchmark checker would allow an incomplete task without error, so maybe just a simple conditional would work.

Yes, only doing the validation once all folds are recorded would be a good solution. 👍


An access token is required.

Hello Joe,
I am trying to use this package following the steps that you provided, but I am having the error An access token is required. I already run migration and I can see youtube_access_tokens.
That table is empty and even when I try to upload a video the refresh_token is no generated. I was trying to find some information to fix and I saw that people were having this problem a few years ago.
I am using Laravel 5.5 and PHP 7.1
thank you.

Have you authenticated? https://github.com/JoeDawson/youtube#authentication

Thank you for the quick answer Joe.
For some reason when I try to open the url /youtube/auth in the app I get the error "Sorry, the page you are looking for could not be found." and that route is not in my routes.
http://myspotlight.app/youtube/auth
this is the config file and I already have the credentials in the .env file.
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET

 env('GOOGLE_CLIENT_ID', null),

    /**
     * Client Secret.
     */
    'client_secret' => env('GOOGLE_CLIENT_SECRET', null),

    /**
     * Scopes.
     */
    'scopes' => [
        'https://www.googleapis.com/auth/youtube',
        'https://www.googleapis.com/auth/youtube.upload',
        'https://www.googleapis.com/auth/youtube.readonly'
    ],

    /**
     * Route URI's
     */
    'routes' => [

        /**
         * Determine if the Routes should be disabled.
         * Note: We recommend this to be set to "false" immediately after authentication.
         */
        'enabled' => false,

        /**
         * The prefix for the below URI's
         */
        'prefix' => 'youtube',

        /**
         * Redirect URI
         */
        'redirect_uri' => 'callback',

        /**
         * The autentication URI
         */
        'authentication_uri' => 'auth',

        /**
         * The redirect back URI
         */
        'redirect_back_uri' => '/',

    ]

];

Please see the first sentence in the link I sent;

For security reasons, the routes to authorize your channel with your Laravel application for disabled by default. You will need to enable them in your config/youtube.php before doing the following.

You will need to enable the routes by setting this value to true.
https://github.com/JoeDawson/youtube/blob/master/config/youtube.php#L33
As a default, these routes are disabled since you'll want to disable them after you have authenticated.

Hey Joe,
Thank you for your help, that was definitely my problem. I misunderstood that part of the explanation thinking that I would find some commented lines.
Also Thanks a lot for such amazing work.

You need to clear the route table to be able to do this.


Plotting function with min/max problem

I try to plot:
$Plot{min(3; 14/(9*a)) @ a = 0.1 : 3}

But was: Unexpected error: Index was outside the bounds of the array. Please check the expression consistency.
This works correctly:
$Plot{14/(9*a)*(14/(9*a) ≤ 3) + 3*(14/(9*a) > 3) @ a = 0.1 : 3}

So, is it simple mistake or deep calculation problem?
$Area works nomally with this function, $Integral doesn't works too.

@Proektsoftbg another one question:
Is it possible to make $Area shows as $Integral with ∫? It seems they don't really need to be distinguished in the output.

OK. No problem, I will do it!

@cser  Both are now fixed. You can download and resintall the latest release. Before that, uninstall the previous one.

Yes! It works now.


[HOLD for payment 2023-11-09] [$500] A "New Messages" notification is shown when there is no new message

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.90-2
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @daveSeife
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1698164387186969
Action Performed:

Open any chat
Have enough messages on the chat, so you are able to scroll
Mark the last message as unread
Start scrolling up and see that the New Messages notification appears
Delete the last message
Start scrolling up and Notice that New Messages notification is shown

Expected Result:
"New Messages" notification is not shown when there is no new message
Actual Result:
A "New Messages" notification is shown when there is no new message
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/38435837/84fcab6e-22d7-43c8-8b8d-14ef7538f625

Android: mWeb Chrome

https://github.com/Expensify/App/assets/38435837/22e3f32c-e1d7-40be-8732-ebbe0beea8e7

iOS: Native

https://github.com/Expensify/App/assets/38435837/c90d0ca0-e47f-4216-9e8a-ae8b12a3ffa9

iOS: mWeb Safari

https://github.com/Expensify/App/assets/38435837/b7070842-118e-485a-b006-b824ec267e0f

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/38435837/52cf7c6c-5867-4305-85a6-1fe8354cb897
https://github.com/Expensify/App/assets/38435837/4d0607dc-e952-4a78-9a4f-30301ee4811f

MacOS: Desktop

https://github.com/Expensify/App/assets/38435837/3c2e9c34-1988-450f-8a18-67f7106151e7

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~013619be7f4c5f8ab1
Upwork Job ID:<PHONE_NUMBER>821657088
Last Price Increase: 2023-10-25

issue_01
Proposal
Please re-state the problem that we are trying to solve in this issue.
The "New Messages" notification is shown even after all the new messages are deleted
What is the root cause of that problem?
We are setting the currentUnreadMarker when reportActions or report.lastReadTime is changed
https://github.com/Expensify/App/blob/38d647e174acb502e2fae1494faf1c0d9d59e792/src/pages/home/report/ReportActionsList.js#L318-L330
When marking a message unread, the reportActionID of the message is set to currentUnreadMarker.
When removing the message after that, we don't set null to currentUnreadMarker as you can see. So the currentUnreadMarker would have the old value even after the message is deleted
This is the root cause
What changes do you think we should make in order to solve the problem?
We need to set null to currentUnreadMarker if there is no new messages
Update the above useEffect callback function
        let markerFound = false;
        _.each(sortedReportActions, (reportAction, index) => {
            if (!shouldDisplayNewMarker(reportAction, index)) {
                return;
            }
            markerFound = true;
            if (!currentUnreadMarker && currentUnreadMarker !== reportAction.reportActionID) {
                setCurrentUnreadMarker(reportAction.reportActionID);
            }
        });

        if (!markerFound) {
            setCurrentUnreadMarker(null);
        }

This works as expected

Result

What alternative solutions did you explore? (Optional)

@s-alves10 What if another user deletes a new message when the current user has opened a report with the new message? I think this could not be handled case, but it is a very similar scenario

then reportActions would change by pusher event and the effect callback will be called. I guess the notification message would disappear. I'll test it shortly

@ArekChr
I just tested the case you mentioned and the 'New messages' notification disappears when the other user deletes the new message

Great @s-alves10! We can go with your solution.
:ribbon: :eyes: :ribbon: C+ reviewed

@ArekChr
PR is ready for review https://github.com/Expensify/App/pull/30485

Looks like the PR is merged, waiting for automation here.

As this caused regression, I suggest to revert PR and just close the issue as dupe of #22174 which is on hold for #25935.
cc: @MonilBhavsar

@situchan
Will you please explain why this caused the regression?

@s-alves10 I am not able to reproduce https://github.com/Expensify/App/issues/30696after reverting https://github.com/Expensify/App/pull/30485 locally.

@situchan
Will you check the changes in this PR? It has a clear logic and I think it has any side-effect.
By the way, here is my question. When deleting a unread message, the new line marker should move to the next message? Unread marker means all the messages after that are unread, I think

@situchan
I'm finding the root cause of https://github.com/Expensify/App/issues/30696. Please give me a try

Reassigning another team member, I'm going OOO until Tuesday, November 14, and will take it back if it's still open by my return date.
@sonialiap  - Required action from the team:
This payment is on hold due to regression. Can you please keep an eye out and make sure that we are making progress to address the issue and can prepare for a new payment date? Thanks!

@s-alves10 any news?

I don't think this causes a regression. Please check https://github.com/Expensify/App/issues/30696#issuecomment-1791243687

@sonialiap - I'm back online and will take it from here.

@madmax330 or @ArekChr - can you please confirm if you agree that this update didn't cause a regression? Also, @ArekChr please complete the checklist https://github.com/Expensify/App/issues/30359#issuecomment-1790409845. I want to complete the payment process this week. Thanks!

[x] Determine if we should create a regression test for this bug. I think this green marker is important to have a regression test for this scenario:

Regression test proposal

Open any chat with many messages so you can scroll them.
Mark the last message as unread.
Start scrolling up and see that the "New Messages" notification appears.
Delete the last unread message.
Verify that the "New Messages" notification disappeared after scrolling them.

Do we agree :+1: or :-1:

I attempted to reproduce the issue mentioned, but I encountered a different problem which prevented me from doing so. Specifically, I could not delete messages due to new issues related to the action bar. @s-alves10 Did you find the root cause of 30359?

@ArekChr
What do you mean by root cause of 30359? You mean the root cause of this issue?

@situchan
I'm finding the root cause of #30696. Please give me a try

@s-alves10 I regard to this message

@ArekChr - to confirm, is the issue you faced due to regression from this issue or something else? I'm trying to see if we can close this issue and carry on with the payment process tomorrow. Thanks!

@alexpensify After looking at the @s-alves10 investigation. It looks like this issue doesn't introduce regression. We can close the issue and move forward with the payment process.

Agree not regression and not affect payment but https://github.com/Expensify/App/issues/30696 should be handled follow-up as part of this issue because that issue was raised up after merging this PR.

Here is the payment summary:

External issue reporter @daveSeife $50
Contributor that fixed the issue @s-alves10 $500
Contributor+ that helped on the issue and/or PR @ArekChr paid via vendor

Upwork Job: https://www.upwork.com/jobs/~013619be7f4c5f8ab1
Extra Notes regarding payment: No bonus, the PR was created after the notification period.

@s-alves10 - please accept in Upwork and I can complete this process. Thanks!

@alexpensify
Offer accepted. Thanks

Awesome! Great work, and thanks for your patience as we sorted if there was regression here. I've paid everyone in Upwork and closed the job. Now, I'm going to close this GH too.


FileFormRecPollingPDF - maximum submissions to FR reached

What is happening when we see files erroring out when uploading with this error message:  FileFormRecPollingPDF - maximum submissions to FR reached
Is there anything we can do about this? Also is there somewhere else that will give more verbose log on this?

This means the function has errored and maxed out the configured number of retries. There must be some underlying error causing the submission to fail. The Azure Functions are built to requeue the file and retry N times based on configuration.
You will need to examine the logs to determine the root cause. You can use this troubleshooting guide (https://github.com/microsoft/PubSec-Info-Assistant/blob/main/docs/deployment/troubleshooting.md) as well as the Azure Workbook that is deployed in your Info Assistant resource group to help examine logs.

This issue is marked for closure due to inactivity for 2 weeks. It will be closed in 5 days.


Enhancement: display plugin name and rule ID in the problem message

Since I also work with VS Code Spectral plugin I noticed one really helpful feature: VS Code plugin displays linter message with two additional fields which are really important for troubleshooting:

The name of the plugin which reported the error (one can have multiple ones contributing to the same problems list)
The name of the Spectral rule which triggered the message

I wonder if similar visualization can be added to Idea plugin...
Also would be great to see some debug output from plugin when it is handling a file  if something goes wrong...

Found a way to classify in Idea 2022.1 but Spectral plugin doesn't support "inspection name".


Cache Integrity

Hi,
There is a cache integrity issue via Ruby and Rails 5 + dalli_store.
when storing a hash in cache, the value of the key is converted to string. I would like to know how to avoid the issue. Is there a parameter that can be used to keep integrity on objects, hashes, arrays, arrays of hashes, active record objects? Thanks
config.cache_store = :dalli_store, 'localhost:11211', { namespace: "RAILS_5", expires_in: 7.days, compress: true, serializer: JSON }
Running the following code twice returns a different value for cached_objects
bucket_name =  'TEST'
    cached_objects = Rails.cache.fetch(bucket_name)
    if cached_objects.nil?
      cached_objects = {}
      cached_objects[:test] = # A hash with an array of active record objects and other data types
      Rails.cache.write(bucket_name, cached_objects, expires_in:Integer(10).minutes)
    end

The issue happened due to a migration from Rails 3 to Rails 5.
Serialized cache objects are different.


Invalid allowance printing in logs

./cli deposit 9900 DAI

  *********  DutchX CLI - staging  *********
    Operation: deposit 9900 DAI
    Markets: CENSORED
    Ethereum Node: https://mainnet.infura.io
  *********************************

Secp256k1 bindings are not compiled. Pure JS implementation will be used.
2018-10-03T05:13:40.165Z INFO-cli Deposit 9900 DAI into the DX for 0xCENSORED
2018-10-03T05:13:40.166Z INFO-dx-service:services:DxTradeService Fund the account 0xCENSORED with 9.9e+21 DAI

2018-10-03T05:13:41.023Z INFO-dx-service:services:DxTradeService Not need to do any approval. The DX already have an allowance of 9.9e+39
2018-10-03T05:15:23.479Z INFO-dx-service:services:DxTradeService Deposited 9900 DAI into DX account balances for the user. Transaction: 0xCENSORED
2018-10-03T05:15:23.480Z INFO-cli The delivery was succesful. Transaction: 0xCENSORED

In the Not need to do any approval. The DX already have an allowance of 9.9e+39 message the 9.9e+39 amount is incorrect. The actual approval was sent for 9.9e+21, which is the right amount, just that when displayed it is incorrectly multiplied by 10^18 for some reason.

Detected and fixed. Will be available in next release
Thank you for reporting!


feat(pixels): add my new pixel (39, 23)

Checklist

[x] I ran npm test locally and it passed without errors.

[x] I only edited the _data/pixels.json file.

[x] I entered the username in the pixels.json that I'm also using to create this pull request.
[x] I acknowledge that all my contributions will be made under the project's license.

Hi @xmangahas! It seems like this PR has a merge conflict and your fork does not any longer exist. I'll be closing this PR but feel free to open a new one. Thank you!


Nix file sets, attempt 2....

Some ci errors slipped in from https://github.com/roc-lang/roc/pull/6113 so it was reverted
My guess is the flake update I did. I attempted flake update but this time also updated the rust overlay. My hope is the rust overlay update might better be tracking nix unstable so its ld is also updated.
Shot in the dark since i dont have an m1 :(
If CI fails again, it would be possible to add a "new" nixpkgs input to the flake and use that just for the lib api and not for its pkgs

possible the issue is related to LTO in clang? seems weird that this would pop up now https://github.com/NixOS/nixpkgs/issues/19098
Will investigate

@Anton-4 ty for the offer!
I updated the nix shell to use lld since we have it in the nix env. Hopefully this works around the issue + for everyone using nix (including linux) should get faster builds automagically (assuming this actually works....)

If this doesnt work we can try setting the rust flags to something like
-C ink-args=-fno-lto

for just arm mac but that feels like it might be pretty bad perf wise.
If it comes to that ill look more deeply into trying to pin the clang linker to the version on main

o looks like it already was using lld...
"-nodefaultlibs" "-fuse-ld=lld" "-fuse-ld=lld"

@Anton-4 I threw in the towel a bit... I changed it so we only use the unstable input for the flile filtering api and not for any "real" packages.

Thanks for trying! I'll investigate a bit, we'll have to upgrade nixpkgs some day :smile:

looks like my other branch causes merge conflicts, will rebase tonight

@Anton-4 should be good for review

Thanks @JRMurr, in the coming days I'll try to see if I can fix the earlier issue on macos arm64 and will merge if not.

After a long and difficult bisect journey I was able to find the nix commit that caused the issue. Follow up discussion will happen in #6303.

Once #6314 is merged we can go back to the original approach here :)

@Anton-4 TY for figuring out the issue! Will update this pr with the og approach!

@Anton-4 did a rebase and went back to the og approach. should be good for review


Added language option to form proptypes

Language flag is missing, so ts-validation is failing and cannot be compiled without @ts-ignore

Thanks @DerH4NNES !


Is this package has support to desktop application also?

Android & Web working fine. But not working in windows and linux.

I got following error on linux.
CMake Error at /usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:603 (message):
A required package was not found
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPkgConfig.cmake:825 (_pkg_check_modules_internal)
flutter/ephemeral/.plugin_symlinks/audioplayers_linux/linux/CMakeLists.txt:25 (pkg_check_modules)

Try to build on verbose mode to get details on missing packages flutter build linux -v.
On my case it was gstreamer... on ubuntu I installed missing packages with:
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
      gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
      gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
      gstreamer1.0-libav libgstrtspserver-1.0-dev libges-1.0-dev


How to use --footer_text or --title?

I cannot seem to figure out how to pass a string to these arguments.
For context, I am trying to pass these arguments in the docker compose like so:
command: ["microbin", "--highlightsyntax", "--editable", "--hide-footer", "--title 'newtitle'"]
Tried different combinations such as
title:'new'
title new
title 'new'
nothing seem to be working. I have a feeling I am doing something dumb. Appreciate your help.

["microbin", "--highlightsyntax", "--editable", "--hide-footer", "--title", "newtitle"]
should be like this.
However, there seems to be a logic error preventing the new title from being used, and passing in footer-text causes an Unwrap on a None value somehow. Can you reproduce that?

Can you reproduce that?

yes. It is completely ignoring the new title set via the command. everything else works.

As @uniqueNullptr2 pointed out in the discussion of #34, templates/header.html:4 checks whether footer text is set to decide whether the title text should be changed. As a workaround now you can set a footer text to enable the title change until this is fixed. You're very welcome to open PR for this fix as well!


"Add-on Error" during upload attempt

When I press upload it says in Upload Status Add-on error

To get more details about this error, can you share the console output during the upload attempt?

On Windows, in Blender go to Window > Toggle System Console to see the console.
On Mac OS, you'll need to start Blender from a terminal window.

@Nightriff and @Autonvilkku Here is the Terminal stuff:
Read prefs: "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\config\userpref.blend"
Registered Power Sequencer with 72 modules
Reloading external rigs...
Reloading external metarigs...
register_class(...):
Info: Registering panel class: 'TEXTURE_PT_colors', bl_idname 'TEXTURE_PT_colors' has been registered before, unregistering previous
register_class(...):
Info: Registering operator class: 'OBJECT_OT_AlignOperator', bl_idname 'object.align' has been registered before, unregistering previous
To use POV centric workspaces you can set POV render option
and save it with File > Defaults > Save Startup File menu
Read blend: "C:\Users\Gamergodyt\OneDrive\Documents\untitled.blend"
Traceback (most recent call last):
File "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\roblox-blender-plugin\lib\oauth2_login_operators.py", line 81, in on_refresh_complete
task.result()
File "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\roblox-blender-plugin\lib\oauth2_client.py", line 245, in refresh_login_if_needed
new_token_data = await self.__refresh_tokens(refresh_token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\roblox-blender-plugin\lib\oauth2_client.py", line 322, in __refresh_tokens
raise exception
File "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\roblox-blender-plugin\lib\oauth2_client.py", line 316, in __refresh_tokens
response.raise_for_status()  # Raises ClientResponseError or other ClientError
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\roblox-blender-plugin\dependencies_public\aiohttp\client_reqrep.py", line 1011, in raise_for_status
raise ClientResponseError(
aiohttp.client_exceptions.ClientResponseError: 400, message='Token has been revoked', url=URL('https://apis.roblox.com/oauth/v1/token')
Traceback (most recent call last):
File "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\roblox-blender-plugin\lib\upload_operator.py", line 156, in upload
export_fbx(scene, view_layer, target_object, exported_file_path, add_on_preferences)
File "C:\Users\Gamergodyt\AppData\Roaming\Blender Foundation\Blender\4.1\scripts\addons\roblox-blender-plugin\lib\export_fbx.py", line 61, in export_fbx
bpy.ops.export_scene.fbx(
File "C:\Program Files\Blender Foundation\Blender 4.1\4.1\scripts\modules\bpy\ops.py", line 109, in call
ret = _op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: Calling operator "bpy.ops.export_scene.fbx" error, could not be found

The Token has been revoked error is related to login; the add-on goes to refresh your token but Roblox's server says the refresh token was revoked, which happens after a fixed amount of time or when logging out. When encountering that error, the add-on should be re-prompting you to log in. Let me know if that didn't happen. In any case, you should be able to resolve that by logging out of the plugin and logging back in.
But I see a second error, bpy.ops.export_scene.fbx operator could not be found. That seems unusual, and is likely the cause of the "Add-on error" message you're seeing. I'm unfortunately not able to reproduce this using Blender 4.1.1 (I see you're also on 4.1).
Would you be able to take a screen recording of the upload process? I'm curious if there's anything unusual about your blender layout causing a wrong context to exist where the export_scene.fbx operator isn't available.

Ok thanks I will send you it.

I can't take a screen recording can you tell me more about "blender layout causing a wrong context to exist where the export_scene.fbx operator isn't available." Because that might be somthing thats causing it.

Also I've tried to log out and log bag in before but it didn't do anything.

I fixed it!

@TheoriginalNeko I'm glad the issue was resolved for you. Did you figure out what fixed it, so that others who are experiencing this can also learn?

Closing this since no further information was provided. Feel free to comment if there's more to add.

Im having trouble with this as well I was excited to see this only to discover that it never answered my question

@PlasmaShield27 Thanks for adding your voice. To help diagnose, can you share the output from the console during the upload attempt?

On Windows, in Blender go to Window > Toggle System Console to see the console.
On Mac OS, you'll need to start Blender from a terminal window.

The more data points we have here, hopefully the closer we get to figuring out the cause.

ok I'll do that
Read blend: "C:\Users\charl\OneDrive\Documents\Sword 1.blend"
FBX export starting... 'C:\Users\charl\AppData\Local\Temp\tmpm4nqemr6\Eye\Gem.fbx'
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx_init_.py", line 596, in execute
return export_fbx_bin.save(self, context, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3647, in save
ret = save_single(operator, context.scene, depsgraph, filepath, **kwargs_mod)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3531, in save_single
encode_bin.write(filepath, root, FBX_VERSION)
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\encode_bin.py", line 402, in write
with open(fn, 'wb') as f:
^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\charl\AppData\Local\Temp\tmpm4nqemr6\Eye\Gem.fbx'
Error: Python: Traceback (most recent call last):
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx_init_.py", line 596, in execute
return export_fbx_bin.save(self, context, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3647, in save
ret = save_single(operator, context.scene, depsgraph, filepath, **kwargs_mod)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3531, in save_single
encode_bin.write(filepath, root, FBX_VERSION)
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\BlendTraceback (most recent call last):
File "C:\Users\charl\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\roblox-blender-plugin-main\lib\upload_operator.py", line 156, in upload
export_fbx(scene, view_layer, target_object, exported_file_path, add_on_preferences)
File "C:\Users\charl\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\roblox-blender-plugin-main\lib\export_fbx.py", line 61, in export_fbx
bpy.ops.export_scene.fbx(
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\modules\bpy\ops.py", line 109, in call
ret = op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Python: Traceback (most recent call last):
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx_init.py", line 596, in execute
return export_fbx_bin.save(self, context, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3647, in save
ret = save_single(operator, context.scene, depsgraph, filepath, **kwargs_mod)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3531, in save_single
encode_bin.write(filepath, root, FBX_VERSION)
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\encode_bin.py", line 402, in write
with open(fn, 'wb') as f:
^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\charl\AppData\Local\Temp\tmpm4nqemr6\Eye\Gem.fbx'
Location: C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\modules\bpy\ops.py:109
... truncated
FBX export starting... 'C:\Users\charl\AppData\Local\Temp\tmpf0_a5hcq\Eye\Gem.fbx'
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx_init_.py", line 596, in execute
return export_fbx_bin.save(self, context, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3647, in save
ret = save_single(operator, context.scene, depsgraph, filepath, **kwargs_mod)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3531, in save_single
encode_bin.write(filepath, root, FBX_VERSION)
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\encode_bin.py", line 402, in write
with open(fn, 'wb') as f:
^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\charl\AppData\Local\Temp\tmpf0_a5hcq\Eye\Gem.fbx'
Error: Python: Traceback (most recent call last):
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx_init_.py", line 596, in execute
return export_fbx_bin.save(self, context, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3647, in save
ret = save_single(operator, context.scene, depsgraph, filepath, **kwargs_mod)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3531, in save_single
encode_bin.write(filepath, root, FBX_VERSION)
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\BlendTraceback (most recent call last):
File "C:\Users\charl\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\roblox-blender-plugin-main\lib\upload_operator.py", line 156, in upload
export_fbx(scene, view_layer, target_object, exported_file_path, add_on_preferences)
File "C:\Users\charl\AppData\Roaming\Blender Foundation\Blender\4.2\scripts\addons\roblox-blender-plugin-main\lib\export_fbx.py", line 61, in export_fbx
bpy.ops.export_scene.fbx(
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\modules\bpy\ops.py", line 109, in call
ret = op_call(self.idname_py(), kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: Error: Python: Traceback (most recent call last):
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx_init.py", line 596, in execute
return export_fbx_bin.save(self, context, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3647, in save
ret = save_single(operator, context.scene, depsgraph, filepath, **kwargs_mod)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\export_fbx_bin.py", line 3531, in save_single
encode_bin.write(filepath, root, FBX_VERSION)
File "C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\addons_core\io_scene_fbx\encode_bin.py", line 402, in write
with open(fn, 'wb') as f:
^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\charl\AppData\Local\Temp\tmpf0_a5hcq\Eye\Gem.fbx'
Location: C:\Program Files\WindowsApps\BlenderFoundation.Blender_<IP_ADDRESS>_x64__ppwjx1n5r4v9t\Blender\4.2\scripts\modules\bpy\ops.py:109

sorry it's a lot and I don't know a lot about coding in python
I do see a file not found error and a runtime error

FYI i tried reinstalling the add on

Thanks for the output @PlasmaShield27
I think in your case, the problem is due to the slash / in the object name causing a problem with the export because it thinks the Eye is a folder on the file system rather than part of the file name.
If you rename your object to not have a slash in it, it should export with no problem.
I'll create an issue to sanitize the file name to avoid exporting to the file system with a bad file name.

Since Add-on Error can be caused by multiple things, I'm going to start separating issues based on the cause of the Add-on Error.
Adjusted the title of this issue to reflect the original error message for this post.
Closing again since this issue does not have enough information to diagnose and I can't reproduce the error.
Feel free to comment if you have something further to add related to AttributeError: Calling operator "bpy.ops.export_scene.fbx" error, could not be found
If you have an Add-on Error message but a different error reason in the output, please open a new issue.

Thank you it worked!


Add identifier "Programming Language :: Lua"

Request to add a new Trove classifier.
The name of the classifier(s) you would like to add:

Programming Language :: Lua

Why do you want to add this classifier?
A lot of languages are listed, but we discovered that Lua is missing.
References

https://github.com/mqtt-tools/mqttwarn/pull/669
https://github.com/scoder/lupa

/cc @scoder

Thanks @amotl. I don't have the ability to push changes to your fork to bring this branch up to date with main, can you rebase it?

Hi @di. I've rebased the branch, and added you as a member, in case you will need to rebase again. Thank you.


react-router-redux has a too narrow peerDependency on react

Version
react-router-redux 5.0.0-alpha.6
Test Case
n.a.
Steps to reproduce

Create a new project with react@16, react-router, react-router-dom and react-router-redux.
Run yarn install to install all dependencies
Run yarn check

Expected Behavior
The yarn check command exits succesfully
Actual Behavior
The yarn check command exists with an error, complaining about a version mismatch between react and react-router-redux as shown below
error "react-router-redux#react@^15" doesn't satisfy found match of<EMAIL_ADDRESS>error Found 1 errors.

Looking through the commit history it seems that the peerDependency was loosened for all packages with the react-router 4.2.0 release (https://github.com/ReactTraining/react-router/commit/94e68fdca73ae522a2edff3f8e301f4a28181dd5), but the react-router-redux package was never updated and the version that is published to npmjs.org still contains the old strict peerDependency.
This is causing problems with our CI that runs yarn check as part of the build process.

We'll publish a release with updated peerdeps soon.

Any ETA on when the release will happen @timdorr?

Nope.


Keeping the website up-to-date for projects and participants in cohorts

following on from #815, we've noticed that sometimes group composition for projects - and project names - change over the course of a cohort. That's fine and normal! But we should have a process to handle it and make things less confusing.
Suggestion: in the mid- and post- cohort surveys, ask the following question:
"Is the entry on the OLS website correct for your project? Does it show all the group members and the correct title?" Or something similar.
Tagging @iramosp @Tajuddeen1

That seems like a useful question.
However, I'm seeing a general pattern here that this issue and #815 , #814 , #818, all relate to how we manage project metadata, including who are team members and graduation status. Common underlying, unresolved issues are:

Clarifying whether our single source of truth is Civi or the website.
Linking people and projects.
Establishing a process to update participant info and project metadata.

I'll think a bit more about this 🤔

Clarifying whether our single source of truth is Civi or the website.

I think this mostly is addressed by #843: Website is the source of Truth, Civi is occsionally used for data input


Error when running in standalone mode

Getting the following error when running the connector in standalone mode locally:
2023-12-13 12:02:08 Caused by: org.apache.kafka.connect.runtime.rest.errors.BadRequestException: Connector config {java_base_dir=$( cd -P "$base_dir/../share/java" && pwd ), fi=, shift=, for=library in "kafka" "confluent-common" "kafka-serde-tools" "monitoring-interceptors"; do, echo="USAGE: $0 [-daemon] connect-standalone.properties", dir="$java_base_dir/$library", -daemon)=, else=# Fallback to normal default, LOG4J_CONFIG_ZIP_INSTALL="$base_dir/../etc/kafka/connect-log4j.properties", COMMAND=$1, if=[ "x$KAFKA_HEAP_OPTS" = "x" ]; then, export=CLASSPATH, case=$COMMAND in, ;;=, LOG4J_CONFIG_NORMAL_INSTALL="/etc/kafka/connect-log4j.properties", KAFKA_LOG4J_OPTS="-Dlog4j.configuration=file:$base_dir/../config/connect-log4j.properties", then=, elif=[ -e "${LOG4J_CONFIG_ZIP_INSTALL}" ]; then # Simple zip file layout, CLASSPATH="$classpath_prefix$dir/*", done=, exit=1, base_dir=$(dirname $0), classpath_prefix="", EXTRA_ARGS="-daemon "$EXTRA_ARGS, exec=$(dirname $0)/kafka-run-class $EXTRA_ARGS org.apache.kafka.connect.cli.ConnectStandalone "$@", *)=, esac=} contains no connector type

Do you have any idea how to resolve this?

@khawerrind apologies we missed this issue. I will get someone in the team to reply ASAP.

Hi @khawerrind!
The error message you shared indicates that the connector.class property is missing in the properties file. If you are following the example provided in the README.md file, it suggests that you haven't created the docker-compose-connector.properties file as specified in the configuration section.
To resolve this issue, please follow these steps:

Create a docker-compose-connector.properties file in the /config directory.
You can use the example file provided as a template.
Ensure that you copy the example file content into the new docker-compose-connector.properties file.
Don't forget to provide your Ably key in the appropriate field within the docker-compose-connector.properties file.

By completing these steps, you should address the error, and your configuration should work as intended.


Add link to ruby runner

@sameersbn don't know what you want to do with README file, but just to get started ;)
I guess will be good to have somewhere one list with different runners.

@outcoldman I will add one soon, just need to copy the one from the gitlab-ci-runner repo, update it and it should be in place. ATM i will merge this PR.


improving readme: add techs supporteds and some adjusts on commands

Hi,
I made some changes to the README that I think are interesting, could you please validate?
Thx

Merger accepted !


[WIP] BIGTOP-3736. Bump Hadoop to 3.2.4 in branch-3.1.

https://issues.apache.org/jira/browse/BIGTOP-3736
Hadoop 3.2.4 RC0 is under vote: https://lists.apache.org/thread/xlg7bwcz2mrsfccfjg3334tqhj1x88kr
I'm not considering this as blocker of Bigtop 3.1.1, while it is nice to have.

download URL must be updated after Hadoop 3.2.4 is released.

Building HBase 2.4.11 and Spark 3.1.2 against Hadoop 3.2.4 worked and smoke-tests passed on CentOS 7 x86_64:
$ ./docker-hadoop.sh \
       --create 3 \
       --image bigtop/puppet:trunk-centos-7 \
       --memory 8g \
       --repo file:///bigtop-home/output \
       --disable-gpg-check \
       --stack hdfs,yarn,mapreduce,hbase,spark \
       --smoke-tests hdfs,yarn,mapreduce,hbase,spark
...
BUILD SUCCESSFUL in 17m 33s
47 actionable tasks: 22 executed, 25 up-to-date

Building Hive 3.1.2 against Hadoop 3.2.4 failed due to migration to log4j. We need additional patch for Hive. It should be addressed follow-up JIRA.
[INFO] Reading assembly descriptor: src/assembly/bin.xml
[INFO] Reading assembly descriptor: src/assembly/src.xml
[WARNING] The following patterns were never triggered in this artifact exclusion filter:
o  'log4j:*'
...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.3:single (assemble) on project hive-standalone-metastore: Assembly is incorrectly configured: bin: Assembly is incorrectly configured: bin:
[ERROR] Assembly: bin is not configured correctly: One or more filters had unmatched criteria. Check debug log for more information.
[ERROR] -> [Help 1]

smoke-tests of Hive passed too.
$ ./docker-hadoop.sh \
       --create 3 \
       --image bigtop/puppet:trunk-centos-7 \
       --memory 8g \
       --repo file:///bigtop-home/output \
       --disable-gpg-check \
       --stack hdfs,yarn,mapreduce,hbase,hive,spark \
       --smoke-tests hdfs,yarn,mapreduce,hbase,hive,spark
...
BUILD SUCCESSFUL in 17m 34s
49 actionable tasks: 26 executed, 23 up-to-date


Cli: Responses

Context

Related Tasks: Reading response from durable storage on smart function call
Description

Dependencies: #64, #77, #66
This PR permits CLI users to read the responses to signed operations (e.g. run or deploy)
in their terminal without tailing the kernel.log file.
Manually testing the PR

cargo run --bin jstz -- deploy index.js
// expected output will contain address of the smart function just deployed
addr=tz4...
cargo run --bin jstz -- run "tezos://$addr/"
// expected output will contain response from running the smart function

@alanmarkoTrilitech bump for approval


Fix for novnc in haproxy

Disable httpchk in novnc in haproxy to avoid hangs of nova-novncproxy. The default method used is tcp-check

These commits will need to be squashed. Let me know if you need help with that.

retest

So CI is failing to find the haproxy service as up. Maybe it needs more time between the restart, but maybe this isn't actually able to find haproxy running. Can you check your test system to see if haproxy is correctly identifying the service as up?

Checking the template, after removing the novnc if block, it did fallback to httpchk due to an else statement.

These commits need to be squashed again.

:+1:


[docs] Fix layout shift on loading

This one has been driving me crazy for months (It's not the only UX frustration I have with the docs, but no time to fix more right now). The problem is well explained in https://jakearchibald.com/2014/dont-use-flexbox-for-page-layout/. We were talking about a similar problem with @Janpot during a one-on-one meeting on the WIP editable demos feature. It made me think about this problem, I had already paid the context shift cost, so why not fix the problem at the same time. An illustration of the problem. I press Ctrl + R to reload the page on the follow:
https://user-images.githubusercontent.com/3165635/153504226-b347195f-8bfd-499b-804d-56ad36baf428.mp4
It's a 🎄🎄🎄
The fix is the second commit. I reverse the DOM order to have the TOCs streamed first.
Before

https://mui.com/components/autocomplete/
After

https://deploy-preview-31017--material-ui.netlify.app/components/autocomplete/

Oops, I see I broke the end to end tests in https://github.com/mui/material-ui/pull/30960. Sorry, I had assumed it was flaky (saw it fail multiple times). Maybe we should make this CI status required.


Move lerp for the engine types into dart:sky

This patch just adds them to dart:sky. A future patch will actually use them in
the framework once we've published an updated sky_engine package. Also, add
dartdoc to the classes touched in this patch.

@Hixie

LGTM


[A11y] Correct role attribute for package lists

Addresses https://github.com/NuGet/NuGetGallery/issues/9301
Problem:
On the Profiles page and the List Packages page, the lists of packages were flagged for not having the appropriate role on the individual list items. These were already marked with role="listitem" and the enclosing div was marked with role="list", so I'm unsure why this was flagged. However, we can bypass the need for these manual role attributes by using <ul> and <li> tags directly instead.
Previously,

Fix:
These package lists now use <ul> and <li> tags, which do not require additional role attributes. I also had to remove the bullet and left padding from these package list <ul>s.
After the changes,

This view is shared by the main search page. Could you run FastPass on that page too? Looks good by the way. It sort of makes sense. It's a list of package results :)

I found a separate issue with the "There are X packages" heading on the Search page, where it was inappropriately labeled as an 'alert'. Labeling it a 'heading' fixes this, and just fits better too. FastPass passes on both, the Search pages and the Profiles pages now.
Previously, (2 separate issues: (1) 'alert' heading, (2) the list items)

After the changes,


adding to suppression list customisation

i am very interested in using postal. But from what i have read... if an email gets hard bounced, it will only add to the suppression list if it was bounced 2 times within 24hrs.
Is there any configuration that can be set to change this to something like 60 days? And the email will remain on the list for a custom amount of days? Or maybe a gradual increase in the time on the list when the address was previously on the list an X amount of times.

I do not believe that level of configuration is currently available. You might be able to reduce the amount of time email addresses are on the suppression list with a small code change but #815 could be a problem for the list being cleared.
An email message should only be hard-failed after it has been repeatedly retried over an increasing period of time so the recipient is definitely incorrect/broken in some way or another, any additional delay beyond the current coding would likely only delay the inevitable suppression but also could be interpreted badly by the receiving mail server causing you more trouble.
Postal is designed for transactional email (as opposed to marketing email) so you should have the opportunity to internally detect and warn you of failing email messages. This can be done by your software receiving webhooks from the Postal server.
That said, the code is all here if you want to investigate and add the feature yourself.