Making UIAlertController show public.

Checklist

[ ] New Extension
[ ] New Test
[ ] Changed more than one extension, but all changes are related
[x] Trivial change (doesn't require changelog)

          2 Messages

:book:
Executed 186 tests, with 0 failures (0 unexpected) in 4.311 (4.493) seconds

:book:
Executed 171 tests, with 0 failures (0 unexpected) in 4.240 (4.386) seconds

  Generated by :no_entry_sign: Danger

Codecov Report

Merging #422 into master will not change coverage.
The diff coverage is 0%.

@@           Coverage Diff           @@
##           master     #422   +/-   ##
=======================================
  Coverage   40.33%   40.33%
=======================================
  Files          49       49
  Lines        2194     2194
=======================================
  Hits          885      885
  Misses       1309     1309

Impacted Files
Coverage Δ

Sources/UIAlertControllerExtensions.swift
0% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


Update Splice main to version 0.2.5-snapshot.20241007.7165.0.vb7d97dc2 (automatic PR)

This PR updates branch main of Splice from the latest changes as of version 0.2.5-snapshot.20241007.7165.0.vb7d97dc2, commit DACH-NY/canton-network-node@b7d97dc2f

#131


Process all touches instead of only the first touch.

One touch event can contain updates to more than one touch. I just added a loop over the changedTouches property, so all changes to all touches are properly dispatched.

Sorry for the delay in closing this, this was merged and resolved quite some time ago :smile:


IntegrityError at /admin/filer/folder/

So i have django 1.8.9 and django-filer and i started running into this problem
insert or update on table "filer_clipboard" violates foreign key constraint "filer_clipboard_user_id_2b30c76f2cd235df_fk_auth_user_id"
DETAIL:  Key (user_id)=(67) is not present in table "auth_user".

I realizes it had something to do with a new Custom User i added but looking at filer source code i saw that is should deal with it as well
class Clipboard(models.Model):
    user = models.ForeignKey(getattr(settings, 'AUTH_USER_MODEL', 'auth.User'), verbose_name=_('user'), related_name="filer_clipboards")

i have AUTH_USER_MODEL = 'authtools.User' so it still didn't make sense so i had a look at the database and i found that my old constraint was still in place (it didn't update to my new user)
postgres=# \d filer_clipboard
                          Table "public.filer_clipboard"
 Column  |  Type   |                          Modifiers
---------+---------+--------------------------------------------------------------
 id      | integer | not null default nextval('filer_clipboard_id_seq'::regclass)
 user_id | integer | not null
Indexes:
    "filer_clipboard_pkey" PRIMARY KEY, btree (id)
    "filer_clipboard_e8701ad4" btree (user_id)
Foreign-key constraints:
    "filer_clipboard_user_id_2b30c76f2cd235df_fk_auth_user_id" FOREIGN KEY (user_id) REFERENCES auth_user(id) DEFERRABLE INITIALLY DEFERRED
Referenced by:
    TABLE "filer_clipboarditem" CONSTRAINT "filer_clipb_clipboard_id_335d159e1aea2cdc_fk_filer_clipboard_id" FOREIGN KEY (clipboard_id) REFERENCES filer_clipboard(id) DEFERRABLE INITIALLY DEFERRED

Any ideas on how i can fix this? Resorting to sql to remove the constrains and add the new one doesn't seem like the best approach.

@psychok7 The problem is that at database level the constraints are not in sync with the new code. The db constraints get created at migration time, so you'd have to start off with a blank database and re-migrate the correct structure first. Then you might be able to restore a data backup onto it again (depending on your custom user model).
I didn't know about django-authtools, but looking through their docs (http://django-authtools.readthedocs.org/en/latest/how-to/migrate-to-a-custom-user-model.html#optional-step-5-customize : a bit outdated, these are for Django 1.6+South) it looks like a neat trick is to actually use the exact same user table as before, by setting db_table='auth_user' in Meta on your custom user model. That will mean that you are actually using the same table that already existed before. So all existing database level foreign key constraints to the User throughout your project will still reference the same table.
So first copy the user table over to your custom app (unchanged, just add the db_table='auth_user'). Then make an initial migration. Then change the fields as you want them on your custom user object and make a new migration. --fake the first migration and migrate the rest. You should be all set.
Since this is not an issue with django-filer (as far as I can tell right now), I'll close this issue. Feel free to continue discussion here on the closed ticket. Or re-open if you feel there is something in django-filer that needs fixing.

@stefanfoulis thanks for the response.
Couldn't i just create some sort of datamigration and update the constraint instead? I don't know if its possible thats why i am asking (as an alternative to update the constraing via SQL).
It just seems to me that it would be "easier" and "safer" so i dont't mess around with my production data

@psychok7
yeah, a datamigration might work. I'm not sure how it works, but I guess you can just alter the tables from other apps within your migration. But you'll either have to hardcode all the constraints that need updating in the migration (which can be hard, depending on your codebase and how many 3rd party libraries you're using), or find some way to programmatically discover and iterate over all of them.

@stefanfoulis maybe with RunSQL in the datamigration.
I haven't had a similiar problem with other 3rd party apps yet only with filer .

@stefanfoulis i found another solution. setting db_constraint=False in all user foreign keys in filer applying the migration and then removing it again (since there are implications https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ForeignKey.db_constraint) automatically creates the new constraint that i need.
This is much better then writing sql manually since django does it for you.
I am still testing but so far its working no more error

i also added a data migration for the django_admin_log because it add a constraint pointing to the wrong place as well:
    operations = [
        migrations.RunSQL("BEGIN;"),
        migrations.RunSQL(
            "ALTER TABLE django_admin_log DROP CONSTRAINT "
            "django_admin_log_user_id_52fdd58701c5f563_fk_auth_user_id"
        ),
        migrations.RunSQL(
            "ALTER TABLE django_admin_log ADD CONSTRAINT "
            "django_admin_log_user_id_52fdd58701c5f563_fk_authtools_user_id "
            "foreign key (user_id) references authtools_user(id) "
            "DEFERRABLE INITIALLY DEFERRED"
        ),
        migrations.RunSQL("COMMIT;"),
    ]


Automatically add HTTPS if url scheme is not set

Add a new test to check if HTTPS is added automatically if the given URL does not start with http

Fixes issue https://github.com/thiagonache/morningpost/issues/35


data.regions bug when zoom: enabled

Hey,
first of all thanks for the awesome work with this lib!
I ran into an issue / bug? when using regions with enabled zoom:
The line with regions in it doesn't change when zooming, the points do.
You can see the issue here: http://jsfiddle.net/xqjb2zhb/

One line has regions and doesnt zoom
the other line has no regions and zooms properly.

Another question:
Is it possible to define "connectNull" on a per line base?
For example: I have several lines with null vales. Some I would like to be connected inbetween, some not. (if I should ask this as a seperate question just throw me a hint and I will do so).
cheers,
oli

Same issue here, any line with regions specified on it does not react to zooms.
Thank you for your work!
J.

Do we have any update on this issue ????

I needed a region style to make the end of a line dashed (to represent the uncertainty of the future) and instead I has to use a region colored overlay, which is not as practical and appropriate as dashed lines but still OK.
I guess I'll just do all this in D3 myself when I have time?

Same issue here. Attached Gif to show issue.

Fix is merged but no ETA for the next release.

It's been almost 2 years, since the fix. Any updates on the next release date?

I can confirm I am also still witnessing this issue where regions are not updating/reacting to when a chart is zoomed (with v0.7.15). Any ideas for a workaround in the meantime?

I also encountered this issue with version 0.7.15. From inspecting the region elements I noticed that the g elements with the c3-region class do resize but the rect elements inside the g elements for some reason do not. I managed to create a workaround by specifying a callback function to the onzoom property (https://c3js.org/reference.html#zoom-onzoom) and modifying the rect element width and x attributes with d3 to match the width and x attributes of their parent elements.
config.zoom.onzoom = () => {
    let regions = d3.selectAll("#chartId .c3-region")._groups[0];
    regions.forEach(regionElement => {
        let region = d3.select(regionElement);
        let rectangle = d3.select(regionElement).select("rect");
        rectangle.transition().duration(0).attr('width', region.attr('width'));
        rectangle.transition().duration(0).attr('x', region.attr('x'));
    });
}


Adding StoppingCriteria to generate() of NeuronModelForCausalLM

We require support for stopping_criteria. I currently have little time on this PR, feel free to merge as is, commit to the branch or take the contribution from there.
So far, we have solved this like the following:
class CustomNeuronModelForCausalLM(NeuronModelForCausalLM):
    """NeuronModelForCausalLM with `stopping_criteria` in `generate`"""

    def generate(
        self,
        input_ids: torch.Tensor,
        attention_mask: Optional[torch.Tensor] = None,
        stopping_criteria: Optional["StoppingCriteriaList"] = None,
        generation_config: Optional["GenerationConfig"] = None,
        **kwargs,
    ) -> torch.LongTensor:
        r"""
        A streamlined generate() method overriding the transformers.GenerationMixin.generate() method.

        This method uses the same logits processors/warpers and stopping criteria as the transformers library
        `generate()` method but restricts the generation to greedy search and sampling.

        It does not support transformers `generate()` advanced options.

        Please refer to https://huggingface.co/docs/transformers/en/main_classes/text_generation#transformers.GenerationMixin.generate
        for details on generation configuration.

        Parameters:
            input_ids (`torch.Tensor` of shape `(batch_size, sequence_length)`):
                The sequence used as a prompt for the generation.
            attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*):
                Mask to avoid performing attention on padding token indices.
            generation_config (`~transformers.generation.GenerationConfig`, *optional*):
                The generation configuration to be used as base parametrization for the generation call. `**kwargs`
                passed to generate matching the attributes of `generation_config` will override them. If
                `generation_config` is not provided, default will be used, which had the following loading
                priority: 1) from the `generation_config.json` model file, if it exists; 2) from the model
                configuration. Please note that unspecified parameters will inherit [`~transformers.generation.GenerationConfig`]'s
                default values, whose documentation should be checked to parameterize generation.

        Returns:
            `torch.Tensor`: A  `torch.FloatTensor`.
        """
        # The actual generation configuration is a combination of config and parameters
        generation_config = copy.deepcopy(
            self.generation_config if generation_config is None else generation_config
        )
        model_kwargs = generation_config.update(
            **kwargs
        )  # All unused kwargs must be model kwargs
        # Check model kwargs are actually used by either prepare_inputs_for_generation or forward
        self._validate_model_kwargs(model_kwargs)

        # Instantiate a TokenSelector for the specified configuration
        selector = TokenSelector.create(
            input_ids, generation_config, self, self.max_length
        )
        if stopping_criteria is not None:
            selector.stopping_criteria.append(stopping_criteria)
        # Verify that the inputs are compatible with the model static input dimensions
        batch_size, sequence_length = input_ids.shape
        if sequence_length > self.max_length:
            raise ValueError(
                f"The input sequence length ({sequence_length}) exceeds the model static sequence length ({self.max_length})"
            )
        padded_input_ids = input_ids
        padded_attention_mask = attention_mask
        if batch_size > self.batch_size:
            raise ValueError(
                f"The specified batch_size ({batch_size}) exceeds the model static batch size ({self.batch_size})"
            )
        elif batch_size < self.batch_size:
            logger.warning(
                "Inputs will be padded to match the model static batch size. This will increase latency."
            )
            padding_shape = [self.batch_size - batch_size, sequence_length]
            padding = torch.full(
                padding_shape, fill_value=self.config.eos_token_id, dtype=torch.int64
            )
            padded_input_ids = torch.cat([input_ids, padding])
            if attention_mask is not None:
                padding = torch.zeros(padding_shape, dtype=torch.int64)
                padded_attention_mask = torch.cat([attention_mask, padding])
        # Drop the current generation context and clear the Key/Value cache
        self.reset_generation()

        output_ids = self.generate_tokens(
            padded_input_ids,
            selector,
            batch_size,
            attention_mask=padded_attention_mask,
            **model_kwargs,
        )
        return output_ids[:batch_size, :]

@jimburtoft Re: The discussion today

Created an issue for that new feature.


Hexstring to Base64

Is your Frank! up to date?
8.2.0-20240621.042325
Current Behavior
The checksumpipe hashes input and returns a hexadecimal string.
When this string is converted to base64 with the Base64Pipe, the result is calculated using character encoding instead of the hexadecimal value of the hexstring.
Expected Behavior
I want the Base64Pipe to convert from hexadecimal to base64 when a hexstring is provided, or be able to retrieve a bas64 encoded version after hashing.
Environment Information
FF! 8.1.0-RC2-20240508.012135: frank2openbanking
Running on DESKTOP-1R1U3IC using Apache Tomcat/9.0.88
Java Version: OpenJDK Runtime Environment (21.0.2+13-LTS)
Heap size: 151M, total JVM memory: 236M
Free disk space: 59GB, total disk space: 350GB
Up since: 2024-06-21 09:16:00 (19m)
Steps To Reproduce
Create an adapter with the following pipes:

Configuration
<Adapter name="HexToB64">
  <Receiver name="HexToB64Receiver">
    <ApiListener uriPattern="b64" name="HexToB64Listener" />
  </Receiver>
  <Pipeline>
    <Exits>
      <Exit name="Success" state="SUCCESS" />
      <Exit name="Error" state="ERROR" />
    </Exits>

    <!-- Hash Hello World with the sha256 algorithm  -->
    <ChecksumPipe name="CreateHexString" getInputFromFixedValue="Hello World!" type="SHA256" />
    <!-- Convert the hexstring to base64 -->
    <Base64Pipe name="ConvertHexToB64" />

  </Pipeline>
</Adapter>

Input
No response
What database are you using?
No response
What browsers are you seeing the problem on?
Chrome
Relevant Log Output
No response
Anything else?
No response

Related #6622. I think we should (somehow) merge the 2 pipes first, and see how we can create a proper, uniform pipe-output.

ChecksumPipe is capable of generating a 'hash' of a given message (file or string) using an algorithm. With this, you can prove integrity of the message.
HashPipe uses Mac implementations of algorithms. A Mac algorithm uses a secret, combined with the algorithm to create a 'hash' of a message. Only sources which have this secret are able to generate the same hash for the given message. With this, you can prove integrity and authenticity of a message.
With this in mind we need to decide whether we want to keep these two implementations and perhaps want to extend the ChecksumPipe with a parameter to control the output format (Hex/Base64). The HashPipe already has this option. If we decide to keep these, we need to add clear documentation on when and how to use them, preferably with examples.
Also see: https://stackoverflow.com/a/3696947/956884


Randomly see AskTimeoutException while querying app status

While running integration test, I noticed an interesting thing.
I query app status, it returns its current runtime information immediately (after 0.1 second). And then I sleep 1 second and query again. I met a AskTimeoutException after 15 seconds. Is there any internal resource locking cause this? For instance some property is being updated. During the updating, any app query request will be timed out?
[DEBUG] [23:00:26.755] [Docker$] EXEC master0 => `docker exec master0 curl -s  http://master0:8090/api/v1.0/appmaster/12?detail=true`
[DEBUG] [23:00:26.856] [Docker$] EXEC master0 <= `{"appId":12,"appName":"wordCount","processors":[[1,{"id":1,"taskClass":"io.gearpump.streaming.examples.wordcount.Sum","parallelism":1,"description":"","taskConf":{"_config":{}},"life":{"birth":"0","death":"9223372036854775807"},"executors":[],"taskCount":[]}],[0,{"id":0,"taskClass":"io.gearpump.streaming.examples.wordcount.Split","parallelism":1,"description":"","taskConf":{"_config":{}},"life":{"birth":"0","death":"9223372036854775807"},"executors":[],"taskCount":[]}]],"processorLevels":[[0,0],[1,1]],"dag":{"vertexList":[0,1],"edgeList":[[0,"io.gearpump.partitioner.HashPartitioner",1]]},"actorPath":"akka.tcp://app12-executor-1@<IP_ADDRESS>:55106/user/daemon/appdaemon12/$c/appmaster","executors":[{"executorId":-1,"executor":"akka://app12-executor-1/user/daemon/appdaemon12/$c/appmaster","workerId":1,"status":"active"}],"startTime":"1448031626490","uptime":"348","user":"root","homeDirectory":"/opt/gearpump","logFile":"/opt/gearpump/logs"}` with exit code 0
[DEBUG] [23:00:27.857] [Docker$] EXEC master0 => `docker exec master0 curl -s  http://master0:8090/api/v1.0/appmaster/12?detail=true`
[DEBUG] [23:00:42.920] [Docker$] EXEC master0 <= `akka.pattern.AskTimeoutException: Ask timed out on [Actor[akka.tcp://app12-executor-1@<IP_ADDRESS>:55106/user/daemon/appdaemon12/$c#1633808116]] after [15000 ms]
	at akka.pattern.PromiseActorRef$$anonfun$1.apply$mcV$sp(AskSupport.scala:334)
	at akka.actor.Scheduler$$anon$7.run(Scheduler.scala:117)
	at scala.concurrent.Future$InternalCallbackExecutor$.unbatchedExecute(Future.scala:599)
	at scala.concurrent.BatchingExecutor$class.execute(BatchingExecutor.scala:109)
	at scala.concurrent.Future$InternalCallbackExecutor$.execute(Future.scala:597)
	at akka.actor.LightArrayRevolverScheduler$TaskHolder.executeTask(Scheduler.scala:467)
	at akka.actor.LightArrayRevolverScheduler$$anon$8.executeBucket$1(Scheduler.scala:419)
	at akka.actor.LightArrayRevolverScheduler$$anon$8.nextTick(Scheduler.scala:423)
	at akka.actor.LightArrayRevolverScheduler$$anon$8.run(Scheduler.scala:375)
	at java.lang.Thread.run(Thread.java:745)` with exit code 0

migrated to https://issues.apache.org/jira/browse/GEARPUMP-102


Add ability to output target variance

Currently, we only output a single energy target in all of our models. To make this more flexible, we could also return some kind of "output metadata" that might include additional information like the variance of predicted energy target.
We should determine the best way to return this to the user. Perhaps it could just be an additional column in a dataframe that gets returned? Something like:
model = pt.load_pretrained_model("ICE")
result = model.predict(my_links_df)

result.head()

index
gallons_gas
variance

0
.05
.005

1
.025
.002

2
.05
.001

Included in #16


Move CommonCrypto and zlib dependencies mapping to custom module map

Hi!
I faced an issue similar to this and this this.
In my project I use Carthage and commit my artefacts into my repo. And CI(and any other machine) is not able to compile it without running 'carthage update'.
Basically the problem that to link Starscream.framework with other app or library you should provide module.map similar to the one, located in /zlib folder (but without header, which is required only for build).
To make this work I created new custom module map and added a wrapper for SHA1 algorithm used by Starscream. Also updated cocoapods spec to add custom module map + private headers.
Please consider this PR as a possible way of resolving issues linked above and also I'd be happy to hear from you any suggestions on this.
Thank you!
Cheers!

Hello @turbulem.
Thank you for your solution! But I still have a problem.
I use GitLab CI, two build machines, cache server and Carthage. When I create cache on the first machine, and then use it on the second one, I get an error
Missing required modules: 'SSCZLib', 'SSCommonCrypto'

@kotsaarev Thank you for feedback. Let me check

I double checked. You're right. Looks like it actually doesn't solve an issue.
I have an alternative solution and will update this PR with it later this week.

Just to add my 2c, I'm getting the same issue with Starscream on CircleCI - where I'm building carthage dependencies on a different lane and then using the cached dependencies for the test suite, and I get the same error: missing required modules: 'SSCZLib', 'SSCommonCrypto'

@JeanAzzopardi Did you check the most recent version?
The latest version in my repo should work fine:
https://github.com/turbulem/Starscream/commit/8ca8df0edc39ea1f2e25a827d0bdd998530755c5

@JeanAzzopardi Did you check the most recent version?
The latest version in my repo should work fine:
https://github.com/turbulem/Starscream/commit/8ca8df0edc39ea1f2e25a827d0bdd998530755c5

I haven't checked your version @turbulem, will try it out now and let you know how it goes.

@turbulem - I can confirm your solution works on CircleCI

@JeanAzzopardi Thank you! Hope this PR will help you to fix the issue

However, I just tested on device, and I am getting a crash:
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteData _fastCStringContents:]: unrecognized selector sent to instance 0x1c4237600'

@JeanAzzopardi Does this happen only on real device? Let me check later today on device. Thank you for your feedback!

I will check and get back to you. Could be related to SSL connection too
On Wed, 27 Jun 2018 at 19:04, Sergey Lem<EMAIL_ADDRESS>wrote:

@JeanAzzopardi https://github.com/JeanAzzopardi Does this happen only
on real device? Let me check later today on device. Thank you for your
feedback!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/daltoniam/Starscream/pull/520#issuecomment-400757661,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAAWzgiTy-pFXJ4MDFcYExx6t0kVnqJjks5uA7r_gaJpZM4Uob3u
.

@JeanAzzopardi It may be related to the ss_SHA1Base64Digest function that I added in my PR. This is small wrapper around CC, but all tests passed and I didn't check on device. I will have some time later this week or on a weekend.
But if you can check, that would be wonderful!

@turbulem So I downloaded your branch and checked it out, the tests do pass, but trying the SimpleExample with the local websocket server on simulator gives me the same error.

Actually yes, I made a mistake. I return NSData instead of NSString and somehow compiler let me get away with it. Interesting...
I fixed it and updated PR.
Silly mistake, now it works well.
Thank you for your efforts to help!

Yes, it's working now, that was the issue!
No problem, glad to help out, looking forward for this P.R. to be merged.

@turbulem @daltoniam would it be possible to merge this? It's the last thing holding me back from upgrading to Starscream 3 <3

I've updated my branch with new changes

Hello @turbulem!
I think the problem with sha1Base64 still here, but occurs only in DEBUG mode. I checked out bd0732e and
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Swift._NSContiguousString ss_SHA1Base64Digest]: unrecognized selector sent to instance 0x108b21050'

Crash is occurring in same lines
private extension String {
    func sha1Base64() -> String {
        return (self as NSString).ss_SHA1Base64Digest()
    }
}

I tested with iOS 11.4, Xcode 9.4.1, Swift 4.1. For more info see crash file.

@kotsaarev  I will double check later this week. Thank you.

@kotsaarev So the final version should work fine. Let me know if I can help you anyhow.

@kotsaarev, any chance that it will be merged in the near future?

@daltoniam Any chance that this could be merged? It's the only blocker preventing me from releasing an update as I use CircleCI for releases.

any chance to merge?

Two things are missing here:
NSString+SHA1.m need to be added into Starscream (and test target)

Other linkers flag need to contains -all-load

@gregiOS  Thank you for review. I made necessary changes. Now should be fine.

Any chance for rebase @turbulem, and merge @daltoniam?

@turbulem Can you please take a look on these merge conflicts. It will be easier to merge these changes. Thanks!

Hi, I updated my branch, however there are some issues with new Swift and tests need to be updated. I will do this later this week.

OK let me know when I can check again.

@turbulem please check:

SSLClientCertificate.swift included twice in Sources folder
Xcode project doesn't have files from Sources/Starscream to build

File SSLClientCertificate.swift is in Sources and Sources/Starscream. I guess it should be just once in project. Thanks!

@fassko Thank you for your instant reviews 👍

@turbulem Let me know when you're done and I will merge this.

@fassko I opened new PR, please take a look.


PWA plugin - TypeError: Cannot read property 'debug' of null

🐛 Bug Report
I'm running 2.0.0-alpha.59 and have just added your PWA plugin.
I'm getting the following error:
sw.js:1 Uncaught (in promise) TypeError: Cannot read property 'debug' of null
    at VM3 sw.js:1

My docusaurus config looks like this:
plugins: [
    [
      "@docusaurus/plugin-pwa",
      {
        offlineModeActivationStrategies: ["always"],
        pwaHead: [
          {
            tagName: "link",
            rel: "icon",
            href: "/img/logo-512.png",
          },
          {
            tagName: "link",
            rel: "manifest",
            href: "/manifest.json",
          },
          {
            tagName: "meta",
            name: "theme-color",
            content: "#26642c",
          },
        ],
      },
    ],
  ],

I get the error regardless of passing debug as an option or not.
Have you see this?
Have you read the Contributing Guidelines on issues?
Yes
To Reproduce

yarn add @docusaurus/plugin-pwa
Add the plugin to the docusaurus config
Create an icon + manifest.json and add to static directory
Build the app
Run the app

Expected behavior
The service worker to not throw this error and install correctly
Actual Behavior
The service worker throws an error and doesn't work.

Your Environment

Docusaurus version used: 2.0.0-alpha.59
Environment name and version (e.g. Chrome 78.0.3904.108, Node.js 10.17.0): Version 84.0.4147.89 (Official Build) (64-bit),
Operating system and version (desktop or mobile): MacBook, MacOS Catalina 10.15.3, Desktop

Served locally or using Netlify
Reproducible Demo
https://deploy-preview-41--deity-docs-prod.netlify.app/

🤪 this made me crazy for the last 2 hours
Your site tries to register the service worker himself already in the file src/ServiceWorker.js, which messes up totally with what our pwa plugin is doing.
You have to remove that registration code.
Noticed this non-blocking error too, will see how to fix it:
(undefined<EMAIL_ADDRESS>27:27-60
Critical dependency: the request of a dependency is an expression
(undefined) EnvironmentPlugin - PWA_SW_CUSTOM environment variable is undefined.

@slorber - thank you and apologies!


Annual Review - ADE

Please share any additional details on this topic
Annual Review for the ADE project
Detail what actions or feedback you would like from the TAC
@caffreyj - let's schedule this for the meeting on 2/9 if that works for you.

@caffreyj - when can we reschedule?

@caffreyj I moved this to June 8 at your request for a May or June date. Please let me know if there are any conflicts.

Moved to 7/13 per request from @caffreyj.

Moved to Emertius per TAC vote.
https://github.com/openmainframeproject/omp-landscape/pull/765


Need to Catch Ballerina Message processor in Runtime

There is a need to catch messageProcessor associated with Ballerina when handling target handler messages.
eg: When initializing WebSocket client connection it needs to know the message processor to send incoming messages to the ballerina level.

This can be done at the transport level.


material button toggle/ switch between two icons.

Please describe the feature you would like to request.
Buttons are often used to toggle state. Toggling state often comes with the need of changing the icon inside the button.
this
<button (click)="toggleState = !toggleState" mat-button>{{ toggleState ? 'more_vert' : 'more_horiz' }}</button>
Does not work for obvious reasons.
instead I would have to go caveman style:
<button *ngIf="toggleState" (click)="toggleState = !toggleState" mat-button>more_vert</button> <button *ngIf="!toggleState" (click)="toggleState = !toggleState" mat-button>more_horiz</button>
Would be cool to have something like this:
<button #button (click)="toggleState = !toggleState; button.toggleIcon()" secondIcon="more_horiz" mat-button>more_vert</button>
(if possible a "transition" animation from icon to icon could happen. I know that's a tough one since "svg nodes" need to line up beween icons etc ...)
What is the use-case or motivation for this proposal?
Is there anything else we should know?

Hello 👋
I don't quite get this:

<button (click)="toggleState = !toggleState" mat-button>{{ toggleState ? 'more_vert' : 'more_horiz' }}</button>
Does not work for obvious reasons.

I don't see the reason why that wouldn't work — this does seem reasonable to me.
As for your questions about animations, Angular does have this covered!
Here's the official "getting started" for Angular animations. I browsed through it just yesterday, and it is quite comprehensible.
I built a StackBlitz featuring a "toggle button" like the one you suggested, with Angular-powered transitions.
Here's the gist of it.
@Component({
  selector: 'hello',
  template: `
    <button mat-button
      [@direction]="direction"
      (click)="state = !state">
      <mat-icon>more_{{ direction }}</mat-icon>
    </button>`,
  styles: [`h1 { font-family: Lato; }`],
  animations: [
    trigger('direction', [
      state('horiz', style({
        transform: `scale(1)`,
      })),
      state('vert', style({
        transform: `scale(1)`,
      })),
      transition('horiz <=> vert', [
        style({
          transform: `scale(1.5)`,
          opacity: .5
        }),
        animate('.2s 0s ease-out')
      ])
    ])
  ]
})
export class HelloComponent {
  @Input() public state: boolean = false;

  protected get direction(): 'vert' | 'horiz' {
    return this.state ? 'vert' : 'horiz';
  }
}

Is there something I am missing in your question? Or does my approach help you?

I guess i was missing the mat-icon part :/. Thank you for your great help!


Can't login with antennapod

Describe the bug
I'm using:

Latest version on docker and a reverse proxy
SERVER_URL=http://podfetch.xxx.net also tested without the reverse proxy on lan (i.e. 192.168.x.x:port)
generated api key for user using command line

What works:

logging into web portal at http://podfetch.xxx.net
Curling the gpodder server with valid auth details returns 200. (I notice there's no cookie returned in the header though? This might be the root cause)

$ curl -X POST 'http://podfetch.xxx.net/api/2/auth/username/login.json' -u 'username:password'

"Login successful"

What doesn't work:

When i try to add a gpodder.net server it fails
I enter in http://podfetch.xxx.net
unsecure popup shows "Password and data are not encrypted!" as expected
When i enter wrong  password i get the error "Unable to connect to Gpodder.net code 403: Forbidden" as expected
When i enter wrong username i get the error "Unable to connect to Gpodder.net code 404: Not Found" which seems expected too.
When i try to login with correct details i see a spinner for a millisecond and then the login button shows again. The stack trace in antennapod shows that there is an error without a message (I attach the stack trace below)

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Throwable.getMessage()' on a null object reference
	at de.danoeh.antennapod.fragment.preferences.synchronization.GpodderAuthenticationFragment.lambda$setupLoginView$4(GpodderAuthenticationFragment.java:143)
	at de.danoeh.antennapod.fragment.preferences.synchronization.GpodderAuthenticationFragment.$r8$lambda$PblfpjkWv1kDOd7pkvsz-m1lYHc(GpodderAuthenticationFragment.java:0)
	at de.danoeh.antennapod.fragment.preferences.synchronization.GpodderAuthenticationFragment$$ExternalSyntheticLambda3.accept(R8$$SyntheticClass:0)
	at io.reactivex.internal.observers.CallbackCompletableObserver.onError(CallbackCompletableObserver.java:64)
	at io.reactivex.internal.operators.completable.CompletableObserveOn$ObserveOnCompletableObserver.run(CompletableObserveOn.java:87)
	at io.reactivex.android.schedulers.HandlerScheduler$ScheduledRunnable.run(HandlerScheduler.java:124)
	at android.os.Handler.handleCallback(Handler.java:958)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:205)
	at android.os.Looper.loop(Looper.java:294)
	at android.app.ActivityThread.main(ActivityThread.java:8194)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)

Reproduction
restarted docker image and mounted fresh volume
System Info
Docker image: 78345aff3278d7c60236020b59eb22449b2c7ff1eef834e8222f8372dc414c33

Phone
## Environment
Android version: 14
OS version: 5.10.177-android13-4-00003-ga7208022a7ea-ab10815828
AntennaPod version: 3.2.0
Model: Pixel 7
Device: panther
Product: panther

## Crash info
Time: 03-01-2024 00:22:12
AntennaPod version: 3.2.0

Used Package Manager
n/a
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Hi @psongers,
thanks for the issue. Could you please update to the latest image?  This issue was fixed yesterday and works at least on my phone without a problem.

I tried pinning to latest image it still has the same problem v4.6.0-7d4fa09. Also for me it seems older versions e.g. v4.5.0-c60dad5 do not work as well. I'm not sure why the Cookie is never returned in the response headers

Weird. I'll try to investigate that @arcoast did the fix work for you?

I'm getting the same 404 error when trying to log into AntennaPod. I'm using the same username and password that I created through /app/podfetch users add. This is a fresh install on 1/5/2024.

@SamTV12345 Thanks! It doesn't make sense to me either. I'm try run it on a different computer and see if it works.
@Scridgeon The 404 error may be because the env var GPODDER_INTEGRATION_ENABLED is not set to true. The error I'm experiencing is logging in with valid details is returning status 200 but the I don't receive a session cookie

That fixed the issue for me. Thanks!

Should be fixed @psongers . Could it be that you are trying to login with the administrator account or an account similar to the administrator account?

Thanks @SamTV12345! you're exactly right I was using an administrator account. I didn't realise you had to use a user account instead.
Confirming it works as expected when switching to a user account and I see a 409 status code when I try to login with an admin.

You're welcome 😊. I accidentally returned a status 200 when someone logs in to the admin account via AntennaPod. It should be now a 409 with the clear description that one can't use the admin account for AntennaPod.

You're welcome 😊. I accidentally returned a status 200 when someone logs in to the admin account via AntennaPod. It should be now a 409 with the clear description that one can't use the admin account for AntennaPod.

This had me stumped for a while and I never read anywhere about the admin account and gpodder user account needing to be separate.


Still maintained?

Over a year has passed since the comment in #242.
Any update here? Is it still being worked on?

Same question, I think they are working on a V2 but not sure a public release his planned. last time I read issue they said they still use that internally

I created a fork with the following changes:

TypeScript instead of CoffeeScript
Automation with GitHub Action
Typings for TS Projects
I18n
And some more exciting stuff ;-)

Will be finished in the next couple of days

@hrueger that's great. Does i18n mean translations for feedback messages, custom dictionaries, both, or something else?

@hrueger Nice, but having this repo being owned (and maintained) by Dropbox instead of third parties is also what makes it attractive also. What do you think about this?

@mkopinsky

Does i18n mean translations for feedback messages, custom dictionaries, both, or something else?

both 😀
and custom keyboard layouts, too

@acamill Sure, that's a good point. I just created my fork because

Angular complains about CommonJS dependencies so I needed an ES6 build
I wanted to be able to translate the feedback easily
I wanted a custom password / common words dictionary (German)

If they want to go to TypeScript, I can create a PR

ES2015 Version published under zxcvbn3
Not completely finished yet

Yhea.. Problem is dropbox did not update this repo in years

we would love to use your i18n friendly fork in @ladjs, please post an update here once it's released

we would love to use your i18n friendly fork in @forwardemail and @ladjs, please post an update here once it's released

https://www.npmjs.com/package/zxcvbn3
https://github.com/hrueger/zxcvbn

ES2015 Version published under zxcvbn3
Not completely finished yet

@niftylettuce I activated the issues module for my fork, so if you experience any problems, just create an issue there.
and thanks @MuhammedZakir for the quick response.

It seems the principle developer @lowe is no longer with Dropbox (going off of LinkedIn here) and that this project is abandoned. zxcvbn is still well loved by the community but now it's time for someone else to pick up the torch.

@MatthewAry
@MrWook and I are working together now. You can check the repo out here: https://github.com/MrWook/zxcvbn There's still work to be done, so contributions are welcome.

If this project is abandoned, then any alternatives?

If this project is abandoned, then any alternatives?

If this project is abandoned, then any alternatives?

https://github.com/MrWook/zxcvbn

If this project is abandoned, then any alternatives?

https://github.com/MrWook/zxcvbn

@MuhammedZakir I read through the conversation and know about that fork. But not tried it yet. I will try it soon.
I asked for any other alternatives that are not zxcvbn based.

@MuhammedZakir I read through the conversation and know about that fork. But not tried it yet. I will try it soon.
I asked for any other alternatives that are not zxcvbn based.

@MuhammedZakir I read through the conversation and know about that fork. But not tried it yet. I will try it soon.
I asked for any other alternatives that are not zxcvbn based.

https://github.com/libpwquality/libpwquality (C & Python binding).
If you only need password validation, see https://www.passay.org/ (Java).
* I have never used either of them.

@MuhammedZakir I read through the conversation and know about that fork. But not tried it yet. I will try it soon.
I asked for any other alternatives that are not zxcvbn based.

https://github.com/libpwquality/libpwquality (C & Python binding).
If you only need password validation, see https://www.passay.org/ (Java).
* I have never used either of them.

@MuhammedZakir I will check them out. And I also decided to develop my own password strength estimator with TypeScript.

@MuhammedZakir I will check them out. And I also decided to develop my own password strength estimator with TypeScript.

Hey guys,
Like @hrueger mentioned we were in the process of rewriting this package and we finally finished and published it to npm.
Github: https://github.com/zxcvbn-ts/zxcvbn

npm: https://www.npmjs.com/package/@zxcvbn-ts/zxcvbn
This is completely rewritten in typescript even the data-script part.
The scoring changed slightly duo to following changes:

Passwords as single tokens are now consistent rewarded for capitalization like in #232 described.
there are new keyboard layouts, qwertz and Dvorak
dates should be better recognized. At least the password list has more dates in them than before
the password list is newly generated. The script for this is using all matchers except for the dictionaries, this means that some passwords were included and now have different ranks which results in different guesses

Here is a list with key changes:

I18n support for feedback and dictionaries. By default, the feedback are keys now
All dictionaries are optional but highly recommend (wished feature in some issues)
Dictionaries are separated from the core library this means zxcvbn-ts is relative small without dictionaries
The project is a monorepo with a core library @zxcvbn-ts/core and language packages @zxcvbn-ts/language-en. At the beginning, there is only a German and an English language package.
Keyboard layouts can be customised. This means you can overwrite the default set of layouts with your own or extend it. For example if you develop a Russian website the keyboard layouts are pretty much useless.
Now you could add a Russian keyboard layout by yourself for a fast implementation and create a PR for the long run.
Multiple keyboard layouts are used which means that every layout that is added to the library will be checked against by default.
Tests are now made with jest, so we get a coverage
Included eslint/prettier for consistent code
Added static-page docs https://zxcvbn-ts.github.io/zxcvbn/
There is an esm, commonJS and browser build use it as needed

I have some more ideas that I want to implement but first I want to increase the code and documentation quality.

For this reason I will create issues for my ideas and move some issues from this repo to zxcvbn-ts like the concern with separators.

If you want to contribute, discuss changed that I made or anything else feel free to check out the repo. I activated the discussion panel.
I would love to see some feedback :)

Hey guys,
Like @hrueger mentioned we were in the process of rewriting this package and we finally finished and published it to npm.
Github: https://github.com/zxcvbn-ts/zxcvbn

npm: https://www.npmjs.com/package/@zxcvbn-ts/zxcvbn
This is completely rewritten in typescript even the data-script part.
The scoring changed slightly duo to following changes:

Passwords as single tokens are now consistent rewarded for capitalization like in #232 described.
there are new keyboard layouts, qwertz and Dvorak
dates should be better recognized. At least the password list has more dates in them than before
the password list is newly generated. The script for this is using all matchers except for the dictionaries, this means that some passwords were included and now have different ranks which results in different guesses

Here is a list with key changes:

I18n support for feedback and dictionaries. By default, the feedback are keys now
All dictionaries are optional but highly recommend (wished feature in some issues)
Dictionaries are separated from the core library this means zxcvbn-ts is relative small without dictionaries
The project is a monorepo with a core library @zxcvbn-ts/core and language packages @zxcvbn-ts/language-en. At the beginning, there is only a German and an English language package.
Keyboard layouts can be customised. This means you can overwrite the default set of layouts with your own or extend it. For example if you develop a Russian website the keyboard layouts are pretty much useless.
Now you could add a Russian keyboard layout by yourself for a fast implementation and create a PR for the long run.
Multiple keyboard layouts are used which means that every layout that is added to the library will be checked against by default.
Tests are now made with jest, so we get a coverage
Included eslint/prettier for consistent code
Added static-page docs https://zxcvbn-ts.github.io/zxcvbn/
There is an esm, commonJS and browser build use it as needed

I have some more ideas that I want to implement but first I want to increase the code and documentation quality.

For this reason I will create issues for my ideas and move some issues from this repo to zxcvbn-ts like the concern with separators.

If you want to contribute, discuss changed that I made or anything else feel free to check out the repo. I activated the discussion panel.
I would love to see some feedback :)

Hi !
Thank you for the TS version, I did open an issue at phpMyAdmin so we can switch onto it.
Could you add a message on your repos @MrWook and @hrueger and archive them if they are not currently supported ?

Hey @williamdes
My branch is only a fork of the original for a PR to add the zxcvbn-ts repo into the readme of the original even if it will never be merged.


Merge to live!

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/excel/excel-add-ins-pivottables.md
:white_check_mark:Succeeded

docs/images/excel-pivots-showas-differencefrom.png
:white_check_mark:Succeeded

docs/images/excel-pivots-showas-percentage.png
:white_check_mark:Succeeded

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


Animated Tag rotation behaving unexpectedly

Hi,
I've been working through all the steps of creating an animated Quake 3 character and have had great results with this exporter after some trial and error. I have my head, upper and lower .md3 meshes lined up properly and animating in-game and they look almost perfect-- that is, until an animated Tag plays a rotation (such as raising and turning a weapon during a taunt animation, a back-flip jump animation or any of the full-body death animations). Although oriented correctly when facing forward, the model attached to my Tag seems to move the opposite direction it was animated in Blender (for example tag_head turning left around the Y-axis in Blender will make the attached head mesh turn right in-game, or if tag_head is animated tilting back, the head will tilt forward in-game).
I've tried comparing my results to Quake 3's own .md3 characters which I've brought into Blender with the importer, and I'm confused by the results. The Tags on these imported .md3s are initially lined up the way mine are, but they counter-rotate unintuitively rather than the way you'd expect during any turning movements. This makes me wonder if Tags' rotations are being imported and exported somehow inverted... or am I just missing something obvious? I'm totally stumped :) Hoping you have some insight, and thanks very much for your time and effort!

Hi, this seems to be related to #6 and should be fixed long ago. I've added test to ensure export-import roundtrip doesn't break anything in tag animations and tried to import one of the original models, everythings seems to be fine.
Try this addon version (basically most fresh snapshot of master):
blender_md3.zip

I don't know how I managed it but I was indeed using an old version of the exporter. With the new version you sent I re-exported my models and everything works perfectly. I'm excited to tackle more character projects soon! Thanks again for helping me with my foolish mistakes :)


—exclude examples

Hi, I’m reading the documentation but I don’t understand the usage of the exclude command. I want to exclude some folders from a clone, but how can I select them? I’m familiar with rclone —exclude but in this case I would have also to specificy the partition and I don’t know how. Thanks!

Maybe I didn't understand your problem, but this is how I am dealing with excluding folders:
rpi-clone sda -u --exclude=/home/john/myfolder

Maybe I didn't understand your problem, but this is how I am dealing with excluding folders:
rpi-clone sda -u --exclude=/home/john/myfolder

Thanks. This answer my problem :)

This answer my problem :)

Great. But please close this issue now :wink


Updating values not all ways working

Hi
Great library.
I have a problem with a browser app that I have built for chrome or Firefox.
On a android tablet I have a set of buttons that I press as I pass through the different stages.
When I hit the button it updates the time in the indexeddb and then rebuilds the button to reflect the next stage.
I am finding that indiscriminately it doesn't update the details. As I hit the buttons sometimes it takes 2 or 3 hits to move on to the next stage.
Do i need to reload/refresh my Indexeddb? Can dexie force a reload of the indexeddb?
Any ideas would be appreciated.
Thanks

Read this great article by @nolanlawson:
https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html
It's really about understanding promises for understanding how to use the Dexie api or any other Promise based api.

Thanks David. I will
On Fri, Apr 15, 2016 at 2:07 AM, David Fahlander<EMAIL_ADDRESS>wrote:

Read this great article by @nolanlawson https://github.com/nolanlawson:
https://pouchdb.com/2015/05/18/we-have-a-problem-with-promises.html
It's really about understanding promises for understanding how to use the
Dexie api or any other Promise based api.
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/dfahlander/Dexie.js/issues/235#issuecomment-210022156

--
Regards
George Malkoun
0402 133 820


Fix sorin prompt double expansion

Refs #1267
This is fairly easy to reproduce with the https://github.com/njhartwell/pw3nage repo.
That being said, I think how this prompt actually goes about handling the git info is probably ripe for other injection issues. A more complete fix would probably be good at some point.

Just noticed this vulnerability today in the tickets. Tested the the patch and it works. Please merge this ASAP. Further changes can be done later but this is quite important as it's the default prompt.

The main problem with this patch (and why I didn't just blindly merge it) is that as far as I can tell it just shifts the issue somewhere else. It would still be fairly easy to craft a branch name with single quotes which worked around this "fix". Really, the way this cache file is done isn't very good and that's a part of the problem.

Maybe I'm not understanding in which function/file it's actually getting expanded? If I make a weird branch name and just set:
  zstyle ':prezto:module:git:info:keys' 'format' 'status' '%b %p %c %s%A%B%S%a%d%m%r%U%u'

Then it shows the error is in prompt_sorin_git_info:14: command not found: echo_hi (for branch $(echo_hi).
This line shows: zle && zle reset-prompt.

It's in a cache file. The source "$_prompt_sorin_precmd_async_data" line loads it by sourcing it.

Oh no… :-(

Closed in favor of #1361


Do not resolve remote templates in lint

Fixes #1662
I created a concept of local template resolution context so lint validation rejects remote template resolutions unless passed a flag.
Here's the lint test result with this fix.
$ argo lint examples/workflow-template/steps.yaml
FATA[0000] examples/workflow-template/steps.yaml: templates.hello-hello-hello.steps[0].hello1 failed to get a remote template in local context

$ argo lint --resolve-remote-templates examples/workflow-template/steps.yaml
Workflow manifests validated

$ argo lint --kubeconfig=config examples/workflow-template/steps.yaml
FATA[0000] examples/workflow-template/steps.yaml: templates.hello-hello-hello.steps[0].hello1 failed to get a remote template in local context

$ argo lint --kubeconfig=config --resolve-remote-templates examples/workflowtemplate/steps.yaml
FATA[0000] invalid configuration: no configuration has been provided

$ argo template lint examples/workflow-template/tem
plates.yaml
FATA[0000] examples/workflow-template/templates.yaml: templates.whalesay-inner-template failed to get a remote template in local context

$ argo template lint --resolve-remote-templates exa
mples/workflow-template/templates.yaml
WorkflowTemplate manifests validated

$ argo template lint --kubeconfig=config examples/workflow-template/templates.yaml
FATA[0000] examples/workflow-template/templates.yaml: templates.whalesay-inner-template failed to get a remote template in local context

$ argo template lint --kubeconfig=config --resolve-remote-templates examples/workflow-template/templates.yaml
FATA[0000] invalid configuration: no configuration has been provided

Honestly speaking, a simpler solution is just check Lint flag at https://github.com/argoproj/argo/blob/3bead0db3d2777638992ba5e11a2de1c65be162c/workflow/validate/validate.go#L272.
Please tell me your thought.

Honestly speaking, a simpler solution is passing nil getter and just checking Lint flag at
What do you think of using the nil getter as the default behavior and only doing template resolution when passed in a flag. We can maybe add a warning when trying to lint remote templates locally saying that runtime resolution is not validated unless the flag is provided.

I have updated the code based on https://github.com/argoproj/argo/pull/1787#discussion_r353333836 and tested basic cases below.
$ argo lint examples/hello-world.yaml
Workflow manifests validated

$ argo lint examples/workflow-template/hello-world.yaml
Workflow manifests validated

$ argo lint --kubeconfig=config examples/hello-world.yaml
Workflow manifests validated

$ argo lint --kubeconfig=config examples/workflow-template/hello-world.yaml
2019/12/04 20:55:09 invalid configuration: no configuration has been provided

@dtaniwaki Please resolve the conflict.

Passed functional tests except examples/dag-daemon-task.yaml which looks no relation with this PR.
Here's the pod log
$ argo get dag-daemon-task-d9769
Name:                dag-daemon-task-d9769
Namespace:           default
ServiceAccount:      default
Status:              Failed
Created:             Thu Dec 05 11:03:42 +0900 (3 hours ago)
Started:             Thu Dec 05 11:03:44 +0900 (3 hours ago)
Finished:            Thu Dec 05 14:16:48 +0900 (3 minutes ago)
Duration:            3 hours 13 minutes

STEP                                       PODNAME                           DURATION  MESSAGE
 ✖ dag-daemon-task-d9769 (daemon-example)
 ├-✔ influx (influxdb)                     dag-daemon-task-d9769-2721168474  3h
 └-✖ init-database (influxdb-client)       dag-daemon-task-d9769-3806812314  7s        failed with exit code 3

$ argo logs dag-daemon-task-d9769 -w
WARN[0000] pods "dag-daemon-task-d9769-2721168474" not found
init-database:  curl: (3) [globbing] nested brace in column 9

I will try it in the mastbr branch.

It succeeded now. Maybe, it's a race conditional failure of another thing.


View velodyne pointcloud on Dreamviewer

I was able to view velodyne point cloud data once while playing the demo-sensor-data-2.0 bag. But I'm not able to get that option again. I think I used build_gpu which enabled that option. But I can't do it again. Any idea how to get it ?

Can you elaborate on 'But I'm not able to get that option again.'? Are you on the latest code? The Dreamview frontend should have that option from the 'layer menu' tab on the left, and the build_gpu option doesn't affect that.

I meant the enable/disable button on the layer menu! I saw and enabled that option once but I can't see it on the layer menu anymore. Let me check few more things on my end.

@siyangy - you were right! I had the old code. Thanks :)


Error when i tried to train rnn

when i tried to train rnn with the command
python main.py --network_type rnn --dataset ptb --controller_optim adam --controller_lr 0.00035
--shared_optim sgd --shared_lr 20.0 --entropy_coeff 0.0001
one error occures at util.detach(h), it seems that when h is a tensor, this function will be infinitely recursive, causing an error.
Can you tell me why this is happening?

the version of pytorch is not 0.4.0, you need 0.3.1 or other

Thanks @d-zhou12 , I had the same error as @Olivia-xu. Pytorch 0.3.1 works for me.

It's giving me a different error which is
File "main.py", line 30, in main     trnr = trainer.Trainer(args, dataset)   File "D:\Neda\Pytorch\NAS\trainer.py", line 160, in __init__     self.build_model()   File "D:\Neda\Pytorch\NAS\trainer.py", line 182, in build_model     self.shared = models.RNN(self.args, self.dataset) AttributeError: module 'models' has no attribute 'RNN'
My pytorch version is 1.1.0. Could you please point me to the right direction?


merge package template from Kronos-Tools/npm-package-template

package.json

chore(devDependencies): update<EMAIL_ADDRESS>from template
chore(engines): update<EMAIL_ADDRESS>from template

.travis.yml

chore(travis): merge from template .travis.yml

Coverage decreased (-0.2%) to 82.935% when pulling 74cdbe507da83ae68ceb010d0b89b143bbb2c9ac on template-sync-1 into 0e737a6b955fc82d5b16022ce212e66d27f6cd09 on master.

Codecov Report

Merging #182 into master will decrease coverage by 0.21%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #182      +/-   ##
==========================================
- Coverage   86.59%   86.38%   -0.22%
==========================================
  Files           1        1
  Lines         194      191       -3
==========================================
- Hits          168      165       -3
  Misses         26       26

Impacted Files
Coverage Δ

src/module.js
86.38% <0%> (-0.22%)
:arrow_down:

Continue to review full report at Codecov.

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


Multinode and multi gpu training gets stuck

I have been trying to run example chess_finetune.py with fsdp. I have multple node with multipe gpu. Here is my configuration
#SBATCH --job-name=chess_finetune  # create a short name for your job
#SBATCH --output=chess_finetune.out      # file to write stdout
#SBATCH --nodes=2                  # node count
#SBATCH --cpus-per-task=4          # cpu-cores per task (>1 if multi-threaded tasks)
#SBATCH --gres=gpu:2               # number of gpus per node
#SBATCH --time=01:00:00            # total run time limit (HH:MM:SS)
#SBATCH --ntasks=2                 # total number of tasks across all nodes

Traning seems to start but be stuck without any update, is there any way to debug and check for bugs.
Logs:
[2024-04-11 15:18:25,356] torch.distributed.run: [WARNING]
[2024-04-11 15:18:25,356] torch.distributed.run: [WARNING] *****************************************
[2024-04-11 15:18:25,356] torch.distributed.run: [WARNING] Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed.
[2024-04-11 15:18:25,356] torch.distributed.run: [WARNING] *****************************************

Hey, did you get any fix? I am facing the same issue. Specifically when --ntasks-per-node=2 gpu=2. When I set ntasks-per-node=1 its working but slow given only one process is handiling both. I feel there is a deadlock or something happening.


What does ”std dialect“ do? I didn't find a way to convert "onnx dialect /affine dialect" to ”std dialect“.

I believe this slides say "std" for the standard MLIR dialects like SCF, MemRef, Math, Arith,...
In general, we have a few Krnl operations that are lowered late; most are lowered during the krnl-to-affine but a few are lowered later, up to lowering to LLVM.
That is the standard path that we use here. If you want to hook it up to MLIR to continue optimizations there, you may have a few paths; TOSA or StableHLO which takes ONNX dialects to these, which can then be moved to MLIR. Potentially, you can also pick up some of our lowering patterns for KRNL and applying them in a different order. You are welcome to experiment, and changes could be integrated under a different --EmitXXX option (see onnx-mlir -help for the emit target that we currently support).


Edit bot page: Display the correct interface for slack outgoing webhooks.

This bot has the outgoing_webhook type and the Outgoing webhook message format is Slack compatible. However upon trying to edit the bot, it shows the interface to be Generic, where it was supposed to be Slack outgoing webhooks. Also we are unable to save it as shown in the gif.

@rheaparekh yeah, that seems totally broken.  @YJDave I think you just did some work on this page, so maybe you'll find this easy to debug?


Method Single::breed() added

Hi @markrogoyski,
Methods Single::breed(), Stream::breed() added and covered with tests.
I'm not sure about the naming, maybe you can come up with a better name.
Here are examples that explain the meaning of this functionality:
$numbers = [1, 2, 3];

$result = Single::breed($numbers, fn ($number) => [$number, -$number]);
// [1, -1, 2, -2, 3, -3];

$animals = [
    ['name' => 'bird', 'eggs' => 2],
    ['name' => 'lizard', 'eggs' => 3],
    ['name' => 'echidna', 'eggs' => 1],
    ['name' => 'tyrannosaur', 'eggs' => 0],
];

$nextPopulation = Single::breed($animals, fn ($animal) => Single::repeat($animal['name'], $animal['eggs']));
// ['bird', 'bird', 'lizard', 'lizard', 'lizard', 'echidna']

$input = [[1, 2, [3, [4, 5]], 6], [7], [8, 9], 10];

$result = Single::breed(
    $input,
    fn ($item, $breeder) => is_iterable($item)
        ? Single::breed($item, $breeder)
        : [$item]
);
$result = iterator_to_array($result);
$this->assertEquals([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], $result);

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

5 of 5 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 99.844%

Totals

Change from base Build<PHONE_NUMBER>:
0.001%

Covered Lines:
638

Relevant Lines:
639

💛  - Coveralls

Hi @Smoren,
Thank you for the PR and proposing new functionality.
This is an interesting function. Did you base this off of something that exists somewhere else, or is this your own idea? In trying to think what the most intuitive name for this is, if there is any prior art to reference that would be helpful. Otherwise, I'll brainstorm a bit on the name.
Thanks,
Mark

Hi @markrogoyski,
I'm glad you're interested in this feature. This is my own idea, it came to my mind in the process of solving a specific problem using genetic algorithms.
Then I suddenly realized that the possibilities of this function are much wider. For example, it can flatten trees or get new mathematical sequences from input ones.

@markrogoyski,
My friend suggested to me that this is an implementation of the flatmap function. I think we should call it that, if you don't mind.

Yeah I think you are right. This is just flatmap. The third example had me confused, but you are actually passing itself as its callback so that is why it flattened more than one level.

@markrogoyski, yes, so I think this PR is ready, methods are renamed.

Hi @Smoren,
For this to be flatmap, I would expect the identity function to work as a simple 1-level flatten operation.
For example, I'd expect this unit test to pass:
    public function testFlatMapIdentity(): void
    {
        // Given
        $data = [1, 2, [3], [4, 5], 6, []];

        // And
        $map = fn ($x) => $x;

        // When
        $result = [];
        foreach (Single::flatmap($data, $map) as $item) {
            $result[] = $item;
        }

        // Then
        $expected = [1, 2, 3, 4, 5, 6];
        $this->assertEquals($expected, $result);
    }

I think it currently does not work because the current implementation expects the result of the map function to return something iterable, and the foreach loop will throw an error if it does not, but a map function could result in any kind of result.
I didn't spend a lot of time thinking about this, and maybe there is a more elegant way to implement this, but I think something like this would handle mapping returning mixed results:
    public static function flatMap(iterable $data, callable $func): \Generator
    {
        foreach ($data as $datum) {
            $unflattened = $func($datum, $func);
            if (\is_scalar($unflattened)) {
                yield $unflattened;
            } else {
                foreach ($func($datum, $func) as $product) {
                    yield $product;
                }
            }
        }
    }

I recommend adding some more test cases that mix scalar and iterable return values to verify it implements the expected flatmap behavior.
Thanks,
Mark

Thinking about this a little more, it may make sense to check for an iterable rather than scalar and flip the condition, as objects etc. are not scalar, and they also may be iterable.

Hi @markrogoyski,
I've implemented non-iterable function result support and added new test cases.

Hi @Smoren,
Thank you for making the changes. I think this now implements flatmap as it is commonly understood.

Thank you Mark for merging this PR!
BTM, I came up with the idea: maybe we can make $func optional and by default use fn ($x) => $x?

Thank you Mark for merging this PR!
BTM, I came up with the idea: maybe we can make $func param optional and by default use fn ($x) => $x?

I was thinking the same thing at first. There is another similar function called flatten that would do this and I am thinking about just implementing that. Flatmap is conceptually a call to map and then a call to flatten. Flatten has more usages as you can pass it in a depth and it will flatten that many layers. This way, flatmap would require a mapping function, and if you just wanted a simple one-layer flatten, you could call flatten without specifying a depth, as the default would be 1.
flatten is useful, and rather than duplicate functionality, I think if flatmap always takes a mapping function that would keep things simple and make it clear when to use flatmap and when to use flatten.

Totally agree. Good idea!

FYI: I added Single::flatten and Stream flatten to the develop branch.

Thank you Mark!


Alias site and websockets

In the latest days, I noticed the alias site stopped to work correctly in terms of websocket connection and the correspondent site does.
Firefox can’t establish a connection to the server at wss://conpa.now.sh/pocket.io/.

https://conpa.now.sh/
https://conpa-tpvqhjxmjf.now.sh/

I didn't change the code, only redeployed.
Any idea?

I think it is not related to now.
Closing and investigating.
Sorry for the noise.

I think it is about the self-signed certificate.
https://bugzilla.mozilla.org/show_bug.cgi?id=594502
Navigating to https://conpa-tpvqhjxmjf.now.sh/ and then to https://conpa.now.sh/ it seems it resolves the issue.

Really no idea what it happens.
One day the alias site works at first landing, another day it doesn't.
Maybe load balancing or network routing?


Add tapared tutorial

This adds the ShaftTaperedElement to the tutorial so that the docs will
be synced with the released 0.2.0 version.
Closes #416.

There's some kind of conflict here, I think you used the same branch than before to open this new PR, and now it's bringing along the same commits done on your last PR about the Tutorial.

There's some kind of conflict here, I think you used the same branch than before to open this new PR, and now it's bringing along the same commits done on your last PR about the Tutorial.

I will open a new PR to fix this.


Converge on template best practices

Now that this template is updated to V5, I'd like to deprecate this other template to consolidate maintenance efforts:
https://github.com/purescript-templates/halogen/
What workflow should we suggest to new users? Parcel (featured in the other template) seems like a more beginner friendly option than webpack, and it includes automatic page refresh. With this template, a tool like live-server is required.

@thomashoneyman suggested switching to Parcel also I think. I only resisted it because I've never used it and don't really intend to in the foreseeable future either - not that I specifically have a problem with it or anything, it's just webpack works well enough for me and I don't like having to learn new tools every year or two when they're not necessarily that much better than their predecessor, just different.
Rant over :wink:. If the two of you think we really should though, go ahead.

@garyb I suggested Parcel for the template because, in my experience, it provides a much better zero-config experience than Webpack does. For a template this seems like a nice advantage. I suspect any user who wants to continue on to a full application can easily throw out Parcel in favor of another bundler if they really want to.
I don't have a strong opinion on the matter -- any bundler will do, really -- but Parcel is particularly nice for such a small project like this one.

@milesfrain If you have ideas to make this template more ergonomic -- I saw the other template has live reload and optimized bundles out of the box -- without making it too much more complicated, I welcome a PR!


[FEATURE] Add custom log and error handlers

Is your feature request related to a problem? Please describe.
I'd like a custom logger rather than console logging things as I can't see sensitive things like the severity of the bug, where it's coming from precisely.
Describe the solution you'd like
A utility function that logs things and errors, with additional functionality related to logging.
Describe alternatives you've considered
No response
Additional context
No response

i'd take this issue


Update ReadMe troubleshooting with missing step

This adds the last step of adding the project to the app dependencies list.

Hi @codedre!
Thanks for your contribution! It looks good to me, although I'm not sure I understand a reason why you want to add these steps to the project's README.
The code you want to add is generated automatically after react-native link react-native-blur step. If for some reason you don't use link, please, consider writing a manual linkage guide instead (otherwise it'll be strange that we have installation guide for one platform only).

The current project I am on has been having issues with react-link with android so for this and many other packages I have perform a manual installation. I will close this and write the guide thanks

Awesome! Thanks!


Remove hardcoded CDN libraries and include as dependencies

We would like to use md-editor-v3 for a project that runs on local community servers in rural area where there is no internet.
We have already included in our frontend but we saw that there are some libraries externally linked to cdnjs.cloudfare... Is it possible to set this libraries as local node modules?
Thank you for your work!

Please refer to #294.

Thanks! It's a solution.. Is there some reason to put these packages as external link and don't set as dependency like others?

This is also possible, and there is an example for screenfull, Intranet Link others are similar to it.
To get Reference for all types, search EditorExtensions in this page Config Editor


Windows bug: "select region" only works OK on primary monitor

I suspect maybe it has something to do with the fact my Windows "Display Scaling" is set to 125% on my primary monitor and 150% on my secondary monitor. My second monitor is rotated sideways to look vertical, if it makes a difference.

That's basically it, but I figured out another curious detail:
If you press the button to select the region, and drag the translucent window from the screen it appeared in to another screen with different display scaling %, the window "pops" briefly as it transitions between screens, looking correct.. but then when you Save, it's totally the wrong region. The part that it records is like the top right of that monitor for me, in a totally different place.
I tried moving the main window between monitors but the "region picker" always spawned on my "primary" monitor.
Perhaps if it spawned on the monitor the app window is in, maybe the scaling would be more correct?

The issue is specifically caused by me not taking into account display scaling currently. Electron uses units that are scaled based on the display scaling factor. But gdigrab, the ffmpeg module we use to capture the screen on windows does not use display scaling.
However, accounting for this is difficult due to oddities in the way that Electron handles things. I believe that an issue with electron is making it difficult to support display scaling the way I'd like to. (Possibly this issue, i'm not certain: https://github.com/electron/electron/issues/10862)
I'm still digging into it, but it might be some time before display scaling is fully supported.

Given how long this underlying issue with Electron has remained unaddressed, I'm considering moving this project to an alternative like Lorca.


fix(relations): better formatting for initial example

Had a looot of space between terms in the schema.
Made it less, but still double the amount (2 spaces instead of 1) than what automatic formatting would do.

Looks good! 🚢


Get rid of Al36 data

We don't really need them, Be2 covers everything they do and more.

What is the accuracy one would expect on Be2 data. I was surprised by the low accuracy one would get on Al36 data while running the examples. I thought it was because we didn't have it tuned. Will Be2 be better?

Do you mean low accuracy in terms of loss or energy values? In terms of loss I think they should both be comparable, which is not to say super good, I never really tuned them at all.
In terms of energies, the Be is way better. For example, using simply the small example networks I get e.g.:
Band energy (actual, predicted, error)[eV] 12.424254081462436 12.79562057025893 0.37136648879649314
Total energy (actual, predicted, error)[eV] -72.59824982045231 -72.20972534347281 0.388524476979498

which of course translates to ~185 meV/atom, but even this is not too bad given that I sampled the LDOS with only 11 points instead of 250 and used a very small k-point sampling in creating the data.

Ok, let us use Be as the default for test repo. I will check with Aidan and Normand if there is an use case for keeping Al.

Sure, let me know! It also would not be a problem to keep the Al data if need be, it would just make the repo smaller if we didn't have to keep it.

Since this repo doesn't use git-lfs, unless history is rewritten it will still be in .git so you'd save only the space required to unpack that into the working tree, which is 37 MiB, but better than nothing.

Ah yes, you're right...

Reminder, as mentioned in #1 : Also clean up the Be_ldos.npy while I'm on the Al data.


Upgrade KubeRay from 0.5.0 to 0.6.0

Upgrading the KubeRay from 0.5.0 to 0.6.0 and adjusting the readme, updating some of the underlying rbac and crd files to match the latest KubeRay Operator release.
Description

A new KubeRay operator image to 0.6.0
Matching the latest crds from KubeRay 0.6.0
Matching most of the latest RBAC's from KubeRay 0.6.0 (I left out the Multi-cluster items for now)
Update to the ReadMe to change the mentioned release from 0.5.0 to 0.6.0

How Has This Been Tested?
Testing by deploying from the CodeFlare Notebook with latest CodeFlare-SDK in my OpenShift 4.12 Cluster running ODH 1.9.0 and CodeFlare v0.2.3
oc get pods
NAME                                       READY   STATUS    RESTARTS   AGE
jobtest-head-zcq6z                         1/1     Running   0          7m
jobtest-worker-small-group-jobtest-5vcr8   1/1     Running   0          7m
jobtest-worker-small-group-jobtest-dldh8   1/1     Running   0          7m

Merge criteria:

[ ] The commits are squashed in a cohesive manner and have meaningful messages.
[ ] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[ ] The developer has manually tested the changes and verified that the changes work

fyi @sutaakar @astefanutti

/lgtm

/approve

/retest


feat: add replay exception

Update insecure packages

:tada: This PR is included in version 0.184.0 :tada:
The release is available on:

npm package (@next dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


remove and deny trivial casts

no need to cast a usize to a usize

Nice, thanks :) I'll accept this on the next stream.


[Feature Request] Create and store the index to a database system

I could not find any tutorial or way to store the created index to a database system and query from it.
Probably I missed a guide or so but if not yet implemented, it would be nice to have.

Hi, you can access the inverted index with se.inverted_index after indexing a collection and work from there.
Out of curiosity, why do you want to store the index in a db and query from it?

Hi, thanks for the answer! The reason is because for data storage I just want to store it on the other node and as far as I know, many modern database system now support vector database.


Ability to use Mastodon/Pleroma apps?

Forgive me if this has been brought up before. I am wondering if it would be possible to tweak Misskey so that it can use the many Mastodon mobile apps already out there. For instance, Pleroma allows you to use/login-to Mastodon apps.
Would such a thing be possible with Misskey and expand it's universe of apps for users?
Thanks!
Ray

APIに互換性を持たせることは、メンテナンスコストが大きくなるので難しいと思います。また、MastodonやPleromaとは機能的差異が大きいので(リアクションなど)、全てのMisskeyの機能が使えるようになるわけではありません。そのようなMisskeyの特徴的な機能が使えなければ、Misskeyを使用する意味はあまりないでしょう。
I think it would be difficult to make the APIs compatible, because the maintenance cost would be significant. Also, not all Misskey features will be available, since there are large functional differences from Mastodon and Pleroma (reactions, etc.). If you can't use such unique features of Misskey, there is not much point in using Misskey.

Ah, I understand. Thank you for making beautiful software, Misskey is stunning to use.
Ray

Related to #1280


.NET 7.0 support isolated for AF v4

Adding tracking item for support .NET 7 in isolated mode:
.NET 7 Preview 5 support

Feed ( tooling feed,  extension bundle feed )
Stack API
https://github.com/Azure/azure-functions-dotnet-worker/issues/926
Templates ( align the templates for isolated .NET 6/7, .NET framework 4.8 )
https://github.com/Azure/azure-functions-templates/issues/1225
Image prep - Linux
Worker SDK update : https://github.com/Azure/azure-functions-dotnet-worker/issues/935
Backend dependencies
Testing

Ongoing :

Visual Studio
VS Code
Core tools
CSS
Perf

FYI @mattchenderson

Adding tracking item for support .NET 7 in isolated mode:

Feed
Templates
Image prep
Backend dependencies
Testing

Ongoing :

Visual Studio
VS Code
Core tools
CSS
Perf

Closing issue as resolved.


feature (Lazygit) : Ability to bring up lazygit with git root of current buffer

Did you check the docs?

[X] I have read all the snacks.nvim docs

Is your feature request related to a problem? Please describe.
No. It it's an enhancement to current functionality
Describe the solution you'd like
As a user of Snacks.nvim i want to be able to open lazygit from current buffer so that i can work on multiple git repo at the same time. Currently i have to cd into the repo i want to bring lazygit popup and then bring lazygit. This functionality would be similar to kdheepak/lazygit.nvim :LazyGitFilterCurrentFile
Describe alternatives you've considered
Cd into the repo (or bring up Neogit) and then bring lazygit
Additional context
Work flow involve having a root directory where i put all related project. i usually start nvim from that directory. current lazygit make it difficult to manage multi repo project
Thank you for looking into this

I was wondering whether it is possible to move the LazyVim.root() and LazyVim.root.git() logic into something similar to Snacks.root() and Snacks.root.git(), which would solve this problem, as well as so many keymap settings that require the root directory.

:lua Snacks.lazygit({cwd = Snacks.git.get_root()})


How to split code?

Trying to tackle #3 with this.

[x] Intro to code splitting
[x] On demand code splitting

[x] With require.ensure()

[x] Resource splitting

[x] CSS splitting
[x] Vendor chunk splitting (Common chunks and manifest)

Can you rebase? I'll merge after that.

Done!


nbench: supply stdenv.glibc.static since Makefile uses -static

ZHF: #172160
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

nbench's Makefile always compiles with -static, so we need it to be
able to see libc.a.  Let's add stdenv.glibc.static to the buildInputs.

Please squash the commits.

I squashed them in the github UI.

We usually create merge commits which are missing with this, that's why i haven't used it.

We usually create merge commits which are missing with this, that's why i haven't used it.

I massively prefer squashing, it keeps the history readable and cherry-pickable (you can't git cherry-pick a merge commit).
Git merges were never meant to be used the way the github web UI uses them -- for applying patchsets.  Git merges were always meant for long-lived branches that get merged more than once, like our staging and staging-next.
Github pushes excessive use of merge commits because they don't like the fact that rebasing/cherrypicking a commit changes its hash.  This costs them more storage (less deduplication), but the real problem is that it breaks all their big data analytics.

I agree, but this is not the place to change the rules.

I agree, but this is not the place to change the rules.

Oh, I didn't know there was a formal policy about this.  I've seen people merge my PRs using both styles.

It's even worse. There is an informal policy.
We should document a sane policy, so it's done consistently.
But not in this issue...


Gomod operator update

With this change I can build the operator again.
The go mod for the npehio/controllers/pk was not up to date + cluster api was not aligned with ctrlr rt15.0.

/approve
/lgtm


[$250] Desktop - Chat- New marker doesn't disappear after App minimize/restore

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

Issue found when executing PR https://github.com/Expensify/App/pull/10582
Action Performed:

Run NewDot App
Open cha with unread message
Minimize/Restore
Check the chat

Expected Result:
The new marker and new message badge both disappear
Actual Result:
New marker is not disappeared after minimize/restore
Workaround:
Unknown
Platform:

Where is this issue occurring?

Desktop App

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: Yes
Email or phone of affected tester (no customers): any
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/93399543/188027791-3431cac2-889a-448a-bafa-b4be7a88adeb.mp4
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub

Proposal
Context
ReportActionsView.js is listening to the change event on AppState to update the newMarkerSequenceNumber (essentially where the new marker should be displayed).
https://github.com/Expensify/App/blob/main/src/pages/home/report/ReportActionsView.js#L103-L115
However, it will not do so unless this.getIsReportFullyVisible() is true.
https://github.com/Expensify/App/blob/main/src/pages/home/report/ReportActionsView.js#L265-L271
This relies on the implementation of Visibility.isVisible, which is where the behaviour diverges between Electron and web.
https://github.com/Expensify/App/blob/main/src/libs/Visibility/index.js#L12-L16
Problem
The problem is that Electron's BrowserWindow.isFocused() is false after AppState changes to active. I found this out by debugging with these logs:
        this.appStateChangeListener = AppState.addEventListener('change', (state) => {
            console.log(`AppState: ${state}`);
            console.log(`Visibility.isVisible(): ${Visibility.isVisible()}`);
            ...
        }

https://user-images.githubusercontent.com/8475244/189752556-169f0659-f1eb-497e-9f56-70684c60938b.mov
However, document.visibilityState === 'visible' is true when AppState changes to active, which is why the browser implementation works.
Solution
Modify Visibility.isVisible() to only use BrowserWindow.isFocused() if the AppState is not active:
function isVisible() {
    return window.electron && AppState.currentState !== 'active'
        ? window.electron.sendSync(ELECTRON_EVENTS.REQUEST_VISIBILITY)
        : document.visibilityState === 'visible';
}

Reasoning
When the AppState is active, we want to use the regular document.visibilityState behaviour.
The only concern is this comment:

Electron supports document.visibilityState, but switching to another app while Electron is partially occluded will not trigger a state of hidden so we ask the main process synchronously whether the BrowserWindow.isFocused()

However the AppState should not be active in this case (because we're switching to another app), so my modification shouldn't have any behaviour changes in this case.
Result
https://user-images.githubusercontent.com/8475244/189756606-c447325a-4c76-42a2-aca0-cef1eddef67c.mov

Hey @rushatgabhane we're good to move forward with hiring for this job?

Sorry, was OOO but this proposal looks great 🟢 here

Hired @andrewlor for the fix and @rushatgabhane as C+ in Upwork

Reasoning
When the AppState is active, we want to use the regular document.visibilityState behaviour.

The only concern is this comment:

Electron supports document.visibilityState, but switching to another app while Electron is partially occluded will not trigger a state of hidden so we ask the main process synchronously whether the BrowserWindow.isFocused()

However the AppState should not be active in this case (because we're switching to another app), so my modification shouldn't have any behaviour changes in this case.

Coming in late here, but I am not 100% satisfied with this explanation or the proposed solution.
We are failing to answer this question:
Why does BrowserWindow.isFocused() not return the correct state?
Seems like you've proven that it can happen. But have not provided any reason as to why it happens?

I should have caught this in the review stage but I asked about it in the implementation as well https://github.com/Expensify/App/pull/11150#discussion_r975824111 and so please post an updated solution / explanation here @andrewlor

Nice, thanks @thienlnam !

@thienlnam @marcaaron After looking into this more, it seems like it's the order of events.
I believe BrowserWindow.isFocused() is correct, but it is false immediately after AppState becomes active because the window isn't actually focused yet. It instead becomes focused after the transition period when the window is expanding (the 1-2 seconds where the window is expanding through an animation, might be machine/os dependent how long that is).
AppState.addEventListener('change', () => {
    // When AppState becomes active after expanding a minimized window
    console.log(Visibility.isVisible()) // false
    setTimeout(() => console.log(Visibility.isVisible()), 50); // false
    setTimeout(() => console.log(Visibility.isVisible()), 2000); // true
})

This makes sense to me that a window shouldn't be focused while it's in the process of expanding from a minimized state, but instead when the transition is completed and the window is fully expanded.
I'll continue working and propose a modification to my solution.

Random thought.. but if electron has it's own sense for what is in the "background" or "focused" then maybe the chat page should use:
web: AppState listener
mobile: AppState listener
desktop: Some kind of similar functionality, but based on the electron API like these different events
Same as Visibility.isVisible() switches to request the focus when we are in electron - probably the replacement for AppState listener would do the same.

PR is in final stages of review!

Issue not reproducible during KI retests. (First week)

Regression hold before payment

Issue not reproducible during KI retests. (Second week)

While we're waiting for the regression period before payment, I'd like to request consideration for an increase in compensation. I feel like $1000 would be more appropriate for the work I put in, for a couple of reasons:

I implemented a high quality and well explained solution. This involved lots of back and forth during the proposal/review stage to arrive at a solution that everyone is happy with.
Aside from the intended bug fix, the solution makes improvements to the codebase that can be used/benefited from going forward. Eg. creating new desktop implementation for libs/Visibility, adding onVisibilityChange to all Visibility implementations, adding focus/blur channels to electron, error message cleanup in electron contextBridge.

Thanks to @thienlnam @marcaaron and @rushatgabhane for working on this with me, I received a lot of good feedback and guidance and would have not reached as high of quality solution without them. But I feel like my efforts here deserve a reconsideration in compensation and would also be greatly appreciated. Let me know what you think.

I'm going to be ooo on 10/31 so assigning to another teammate.
Here's the Upwork job for the next person-
https://www.upwork.com/ab/applicants/1567904682697019392/job-details

@NikkiWines please ignore ^ I was unassigning myself only

@thienlnam @rushatgabhane what can we do here to get some more proposals?

@zanyrenney This was already deployed to production over 7 days ago, so just awaiting payment. I requested an increase in compensation for these reasons here https://github.com/Expensify/App/issues/10767#issuecomment-1293829349. I'm still waiting to hear a decision on that.

@andrewlor Thanks for your comment - I'll bring it up to the team and get back to you
@zanyrenney Let's hold off on the payment for the contributor for now until we finish the discussion

Issue not reproducible during KI retests. (First week)

Thanks for the update and additional context @thienlnam

@andrewlor I've reviewed the compensation increase and approve your request
Context:

The solution scope did change outside the proposal and required more investigation here since it was caught after the proposal stage

Aside from the intended bug fix, the solution makes improvements to the codebase that can be used/benefited from going forward. Eg. creating new desktop implementation for libs/Visibility, adding onVisibilityChange to all Visibility implementations, adding focus/blur channels to electron, error message cleanup in electron contextBridge.

This is true and required modifications beyond what your initial proposal had mentioned and took many reviews in the PR stage.

I implemented a high quality and well explained solution. This involved lots of back and forth during the proposal/review stage to arrive at a solution that everyone is happy with.

Though, I wanted to point out though that this is expected when proposing a solution for any job here.  There is usually some back and fourth required to tweak the proposal to make sure it's in a final state and that is priced into the job. That being said, you've done a great job on this PR and proposal and we hope to see more proposals in the future!
cc @zanyrenney
Internal SO

Issue not reproducible during KI retests. (Second week)

Will get to payment on Monday, I'm ooo / been unwell fyi @thienlnam

Hey @Christinadobrzyn I am trying to pay for this job via the job posting you created: https://www.upwork.com/jobs/~01452789e88a3dd322 but it is saying the job posting is closed. Any ideas why? It's not possible for me to follow these steps to complete and pay :( https://stackoverflow.com/c/expensify/questions/7582

Hello! I'm gonna take this one over! Will work on getting new job up now

Upwork job: https://www.upwork.com/jobs/~0103085196ed883659

Upwork job: https://www.upwork.com/jobs/~0103085196ed883659

Thanks! I just applied.

Thanks for jumping on that @dylanexpensify! Sorry, I didn't think it had expired but I see @Christinadobrzyn created that listing 2 months ago and as they expire within 30 days, that would make sense. New one up there and looks like all good now!

Issue not reproducible during KI retests. (Third week) Are we ok to close this one?

@andrewlor just paid you out! @rushatgabhane offer is waiting to be accepted!

Rushat payment sent! All done here!


Type of F<T>[keyof F<T>] becomes unknown in TS 4.7.0-beta

Bug Report
I ran into this issue while testing my code with the new TS 4.7 beta. I didn't see anything in the breaking changes that looked related, so here's an issue!
🔎 Search Terms

4.7.0-beta

🕗 Version & Regression Information

This changed between versions 4.6.2 and 4.7.0-beta

⏯ Playground Link
Playground Link: 4.7.0-dev showing the error and 4.6.2 not showing an error.

💻 Code
interface Bounds {
  min: number;
  max: number;
}

/**
 * A version of T where number-valued properties become Bounds-valued properties and all other
 * properties are dropped, e.g. NumericBoundsOf<{a: number, b: string}> = {a: Bounds}.
 */
type NumericBoundsOf<T> = {
  [K in keyof T as T[K] extends number | undefined ? K : never]: Bounds;
}

// Works as intended:
type X = NumericBoundsOf<{a: number; b: string}>;
//   ^? type X = { a: Bounds; }

function validate<T extends object>(obj: T, bounds: NumericBoundsOf<T>) {
  for (const [key, val] of Object.entries(obj)) {
    const boundsForKey = bounds[key as keyof NumericBoundsOf<T>];
    if (boundsForKey) {
      const {min, max} = boundsForKey;
      if (min > val || max < val) return false;
    }
  }
  return true;
}

Output
"use strict";
function validate(obj, bounds) {
    for (const [key, val] of Object.entries(obj)) {
        const boundsForKey = bounds[key];
        if (boundsForKey) {
            const { min, max } = boundsForKey;
            if (min > val || max < val)
                return false;
        }
    }
    return true;
}

Compiler Options
{
  "compilerOptions": {
    "strict": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "alwaysStrict": true,
    "esModuleInterop": true,
    "declaration": true,
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "target": "ES2017",
    "jsx": "react",
    "module": "ESNext",
    "moduleResolution": "node"
  }
}

🙁 Actual behavior
This code fails to type check in TypeScript 4.7.0-beta:
function validate<T extends object>(obj: T, bounds: NumericBoundsOf<T>) {
  for (const [key, val] of Object.entries(obj)) {
    const boundsForKey = bounds[key as keyof NumericBoundsOf<T>];
    if (boundsForKey) {
      const {min, max} = boundsForKey;
      //     ~~~      Property 'min' does not exist on type 'unknown'. ts(2339)
      //          ~~~ Property 'max' does not exist on type 'unknown'. ts(2339)
      if (min > val || max < val) {
        return false;
      }
    }
  }
  return true;
}

It does pass the type checker in TS 4.6.2, as I believe it should.
🙂 Expected behavior
boundsForKey should have a type of Bounds and this should pass the type checker (as it does in TS 4.6.2).
The type of boundsForKey is displayed as NumericBoundsOf<T>[keyof NumericBoundsOf<T>] in both versions, but evidently TS 4.7.0-beta resolves this to unknown whereas TS 4.6.2 resolved it to Bounds.

Bisect > #47889

As explained here, we can't generally simplify generic mapped types to instantiations of their template type when an as clause is present. That's what was fixed in #47889. However, when an as clause simply filters the property names (i.e. when it is a conditional type in which one branch is the iteration type variable and the other is never), we could potentially still permit the simplification. Same is true if the template type doesn't reference the iteration type variable (as is the case here), though we're not equipped to consistently detect that.
I'll try to put together a PR that permits the filtering case as I think that's fairly common.


Disable SwiftReturns test case

With the new calling convention lldb needs to adapt to reading swift error
Needed after PR#7237.
rdar://29481771

@swift-ci Please smoke test

@jimingham Okay to merge?

Obsolete?