Error trying to apply upgrade function and object store deletion in same version

This may be related to #1, but I think it's narrow enough in scope to warrant a different issue. This is in a Chrome extension so the IE bug is not relevant.
I have an existing database that I'm trying to use with Dexie. In the new version I need to remove a few data stores and run an upgrade function. The data from the data stores to be removed is used in the upgrade function. Based on the order that functions are applied in the version upgrade queue defined in this function, it looks like the object stores are going to be deleted after the upgrade function is applied, so this shouldn't be a problem.
Existing object stores can be removed by setting the key name to null in the object passed to the stores instance method, but when I do that I receive an error on this line because the tableSchemas for the transaction are only being derived from the current version, which now omits the previous store schemas.
I have a failing test on this branch. I can work on a fix later today, but I wanted to make sure I'm not missing some detail that would be necessary to use these to-be-deleted object stores in the upgrade function.

Thanks for detailed explanation! I'm sure this is a bug indeed. Deep in my mind I recall that this is an unsupported and untested use case. Would be great if you did find a solution for it, please go ahead. And thanks muc!

I saw you have a fix in that branch. Please do a pull request when you feel comfortable with it.
I tried to run the test suite. It worked for all tests but this one. Seems to be a trivial issue that I could look at if you do a pull request.

Working on this again after rebasing on master. I think there's a little more to this that isn't currently being tested (ensuring only applicable object store names are available on transaction at upgrade time, handling arbitrary version definition ordering) which I can also look at.

Indeed, there's an architectural issue with the upgrader function's transaction isntance (see #287). I think one solution to the problem is if Transaction would be subclassed for each Version instance since it currently has getters for each object store as well as the table() method but each Version may have its own set of tables and indexes so a subclassing solution would fix this. The _createTransaction() method should create a new latest Version.Transaction(). Then the provided trans object to the upgrade function should get a correct API instead of just the latest version's API as it is now. The API should include previous version's stores PLUS added stores in current. This would also solve #1.
Another thing that I would like to make possible, is to stop requiring developers to save old version specifications unless they have an attached upgrader to it or it's next version. This would be possible by examining the current state instead of relying on the specified versions only.

Please let me know if you'll be working on this. I'll try to keep my hands off Dexie for the coming couple of weeks.

I am working on this. I have a preliminary solution here that addresses the initial test, but I need to add several more.

@chrahunt, will you be doing any more work on your pull request?
Kind regards, David

@dfahlander I will resume working on this soon.

@chrahunt Ok, that's good news 👍 Much appreciated. If you however would find youself in short of time, that's totally ok - just drop me a comment and I'll take over.
You will need to re-merge from master before resuming the work because a lot has happened in master since your last PR. One changed internal API is setApiOnPlace(). Take a close look its new signature and adjust your code for it.
Some requirements to keep them in mind. You don't need to support them in your PR but if you do, it's just a bonus:

Should diff from installed schema rather than from the declared one. This would enable users to skip saving old version declarations in code unless they've attached an upgrade() function to it.
If a non-unique index is changed to be unique, the framework should not fail for duplicates keys. Instead, it should remove duplicated records by default. The upgrade() callback should be invoked before changing indexes, so that the user may resolve unique indexes manually before the framework runs the default behavior.
Table instances that are created during upgrades (using setApiOnPlace()) should omit any hooks so that mapped classes, CRUD hooks etc are not invoked. This is not documented but should be. Need to change setApiOnPlace() and Table constructor to allow empty hooks if desired (Discussed in #372).
In #349, it was requested to have some kind of recreate() support for a specific version - to drop all tables and recreate them empty. Might be useful when you've changed your model totally and just want to start over on a blank sheet.

Other notes:

Code completion stuff (like fake() etc) are not that important anymore. It only works in Visual Studio when not using modules.
Try keeping the code as small as possible.
In #374, it was requested to call non-indexedb async work within an upgrade transaction. You can skip this discussion for now because I'm curious to see if that one could be solved more generally instead supporting Transaction.waitUntil() using @wwoods busy wait approach. In a future version of IndexedDB, we could start using the real waitUntil().

@dfahlander after looking at the code a bit I had a thought. Would it make sense to upgrade step-by-step more explicitly? Closing and reopening the db between each step, e.g.
this.open = function(version = null, max_version = Infinity) {
  let max_specified_version = getMaxVersion();
  return new Promise((resolve, reject) => {
    let req = version ? indexedDB.open(name, version)
                      : indexedDB.open(name);

    req.onupgradeneeded = (e) => {
      let version = e.target.result.version;
      if (!versions[version]) {
        throw new exceptions.InvalidArgument(
          'Version data must be specified.');
      }
      let schema_now = getCurrentSchema();
      let next_schema = versions[version].schema;
      do_upgrade(schema_now, next_schema);
    };

    req.onsuccess = (e) => {
      let db = e.target.result;
      if (db.version < Math.min(max_version, max_specified_version)) {
        let next_version = versions.find(v => db.version < v);
        this.close();
        // async recurse
        resolve(this.open(next_version));
      } else {
        let schema_now = getCurrentSchema();
        removeAllTableApi();
        setTableApi(schema_now);
      }
    };

    req.onerror = (e) => {
      // Catch version error, rethrow unless we have a higher version we can try.
      // to accommodate multiple pages accessing the db at the same time.
    };
  });
};

I think it may be able to simplify the code in a few places and allow us to make stronger assumptions on behavior that may not be well-defined now. Notes:

Each new version would only need to include the current database schema (which could be derived on inspection from the object stores, as desired) and the Version corresponding to the current database version. Where now we preemptively calculate desired state for each version it could be deferred and done between the current schema and that provided to the version we're currently using.

The upgrade of the database would ratchet forward, always getting closer to the desired state. Currently because we're doing everything in a single upgrade transaction we may run into 2 issues:

The maximum resources we may need to execute the transaction grows as a function of both database size and the number of versions we need to upgrade through. This can be mitigated by browsers assuming the underlying implementation prunes unused/removed items. What cannot be mitigated is the possibility of increasing memory consumption at the application level if developers are holding references to objects without realizing it. Maybe this wouldn't be a problem for a single upgrade but several in succession?
The maximum time needed to execute the transaction also grows as a function of the number of versions we need to upgrade through and database size. This is especially relevant as we move to allowing async operations in the context of a transaction. The time needed to upgrade between 2 versions may be well known and tested, but depending on how much control and information developers have, it could be an unknown exactly how many versions need to be upgraded through if some users fall behind.

Related to 2.i, if a single upgrade function fails then the database itself is left in a consistent state immediately before the bugged upgrade. If the reason for failure is transient then after a refresh instead of requiring the same amount of time and work to be done, it can pick up where it left off.

The workaround for IE proposed in #1 could just be implemented as a special case of the same approach. ifIEBug() then check if the next version introduces a deletion of a current object store and if so push an intermediate version into the list and recurse with that set as the next one.

Attempted accessed of the database from different instances of the same code will work the same. The database will either be in the middle of an upgrade transaction (blocking the other access) or just closed, in which case our current page will pick it up in the same way.

It seems you're on to a beautiful solution. I'll read through your text again tomorrow to get a deeper understanding of the details.

Everything that simplifies the logic without sacrificing correctness is a good thing.  Your approach would not only simplify logic but also possibly spare resources. Testability better as well.
Wondering though if not the recursion should be on an internal db._open()  or so.  There are tasks executed at end of db.open such as triggering open ready promise and db.on.ready subscribers. Also, Dexie addons may override the public db.open method.

I agree, an internal method should be used instead and the same for close. Are there any implications for add-ons that you can think of? Outwardly for application code I think internal calls to _open and _close should be transparent, but addons might have need to override/be notified.

This isn't actually fixed, but was closed by a PR that was eventually reverted.

Can we resume working on this? I have a similar problem with the upgrade routine. If I introduce a temporary table to workaround a migration issue I'm having with Firefox, I cannot access via Dexie tables unless I refrain from setting it null in subsequent upgrade steps:
QUnit.test('Migrate', async assert => {
  db = new Dexie(dbName);
  db.version(1).stores({test: '++id'});
  db.open();
  db.close();
  db = new Dexie(dbName);
  db.version(1).stores({test: '++id'});
  db.version(2).stores({test: '++id', test_tmp: '++id'})
  .upgrade(t => {
    t.db.table('test_tmp').put({id: 1});
  });
  db.version(3).stores({test_tmp: null});
  try {
    const obj = await db.table('test_tmp').get(1);
    assert.deepEqual(obj, {id: 1}, 'successfully migrated');
  } catch (error) {
    assert.notOk(error);
  } finally {
    await db.delete();
  }
});

See this Fiddle: https://jsfiddle.net/sechel/aLrg1q6p/
@chrahunt Can you separate the solution from the earlier PR and commit as a new PR?

The funny thing is that the object store is really there. I can use the native API and work around this issue myself. But a fix would be great anyway.

I'm trying to change a primary key with 3.0.0-alpha.3 like the test suggests: https://github.com/dfahlander/Dexie.js/blob/e956de3b74cf3ac5f1ed2fa2b97b53e4fe60a3e1/test/tests-upgrading.js#L566-L602
That is rather verbose because store deletion happens in separate versions so I tried to shorten it by doing the following instead:
    // To change primary key, let's start by copying the table
    // and then deleting and recreating the original table
    // to copy it back again
    db = new Dexie("changePrimKey");
    db.version(1).stores({
        foos: '++id'
    });

    // Add version 2 that copies the data to foos2
    db.version(2).stores({
        foos: null,
        foos2: 'objId'
    }).upgrade(async tx => {
        const foos = await tx.foos.toArray();
        await tx.foos2.bulkAdd(foos.map(foo => ({
            objId: "obj:"+foo.id,
            hello: foo.name
        })));
    });

    // Add version 3 that recreates "foos" with wanted primary key
    // and do the copying again
    db.version(3).stores({
        foos: 'objId, hello',
        foos2: null
    }).upgrade(async tx => {
        const foos = await tx.foos2.toArray();
        await tx.foos.bulkAdd(foos);
    });

This, however, doesn't seem to still work:
OpenFailedError: NotFoundError Table foos not part of transaction

This comment suggests it should though:
https://github.com/dfahlander/Dexie.js/blob/e956de3b74cf3ac5f1ed2fa2b97b53e4fe60a3e1/src/classes/version/schema-helpers.ts#L73
Is this supposed to work or am I misunderstanding what this issue is about?

Yes, it's definitely a bit verbose to say the least. Hope to improve it further. But for now, the code you provided won't make it through version 2, as it defines foos to null, and still tries to read from it in the upgrader.

I see, it may be a bit confusing (and unnecessary verbose) as of now. I'll see what I could do to give access to a to-be-deleted store not only in future version but also current.

This issue was solved with https://github.com/dfahlander/Dexie.js/commit/827b357a2b3099897364d93b74204684a5df1011


Revert "add two papers"

Reverts HuangOwen/Awesome-LLM-Compression#7
The paper "The case for 4-bit precision: k-bit inference scaling laws" is not a survey paper and the paper "Towards Efficient Post-training Quantization of Pre-trained Language Models" is not related to LLM (experiments only conducted on small scale model such as BERT.)

but there is no empirical studies section. where should dlscling law article be put in?

Since this paper research on the LLM with different bitwidth, I suggest to put it in the "Quantization" section.


Will the example file be updated every release?

Because the example is not a distributed purpose directory.
And the minified file is in that directory.
So I want to ask will the example file be updated every release?
Thanks!
https://github.com/cdnjs/cdnjs/issues/7925
https://github.com/cdnjs/cdnjs/pull/7954

Yup!

Thanks for your help!


NameError: name 'shuffle' is not defined

🐛 Bug

To Reproduce
Use ImagenetDataModule without having scikit-learn installed.
Inside imagenet_dataset.py there is the following try-except in the imports:
try:
    from sklearn.utils import shuffle
except ImportError:
    warn('You want to use `sklearn` which is not installed yet,'  # pragma: no-cover
         ' install it with `pip install sklearn`.')

so the program flow continues although sklearn might not be available.
However, the shuffle is used in the UnlabeledImagenet constructor. So in case sklearn is actually missing, it will crash with the following trace:
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pytorch_lightning/accelerators/base_accelerator.py", line 50, in train_or_test
    results = self.trainer.train()
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 476, in train
    self.run_sanity_check(self.get_model())
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pytorch_lightning/trainer/trainer.py", line 656, in run_sanity_check
    self.reset_val_dataloader(ref_model)
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py", line 316, in reset_val_dataloader
    self.num_val_batches, self.val_dataloaders = self._reset_eval_dataloader(model, 'val')
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py", line 236, in _reset_eval_dataloader
    dataloaders = self.request_dataloader(getattr(model, loader_name))
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pytorch_lightning/trainer/data_loading.py", line 339, in request_dataloader
    dataloader = dataloader_fx()
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pl_bolts/datamodules/imagenet_datamodule.py", line 159, in val_dataloader
    transform=transforms)
  File "/home/andrea.palazzi/.local/lib/python3.7/site-packages/pl_bolts/datamodules/imagenet_dataset.py", line 74, in __init__
    self.imgs = shuffle(self.imgs, random_state=1234)
NameError: name 'shuffle' is not defined

Expected behavior
I would expect scikit-learn to be installed automatically when installing bolts, as it's not really optional.
Or at least, the program could fail at import time, it would still be easier to understand where the error comes from. The current way it's not obvious, because the warning gets mixed up among other info/warnings I might have on console and I found myself wondering why shuffle is not defined.
Environment

torch-related:

pytorch-lightning==0.10.0
pytorch-lightning-bolts==0.2.2
torch==1.6.0+cu101
torchvision==0.7.0+cu101

OS (e.g., Linux): Ubuntu 20.04.1 LTS
How you installed PyTorch (conda, pip, source): pip
Python version: 3.7.5
CUDA/cuDNN version: 101

Thanks.

@ndrplz Thank you for the investigation. I agree with you that the error message should be something like:
https://github.com/PyTorchLightning/pytorch-lightning-bolts/blob/ccdc9f9952153abf9b12f00e05294fa332d5f424/pl_bolts/models/self_supervised/amdim/transforms.py#L36-L39

@ndrplz Thank you for reporting the issue in detail! I agree that there should be something like ModuleNotFoundError to inform users of required modules e.g. sklearn.
@Borda What do you think? Can I submit a PR to fix this?


Do not return error if can't start smart update

Test name
Status

recreate
passed

big-data
passed

storage
passed

scaling
passed

haproxy
passed

self-healing
passed

init-deploy
passed

scaling-proxysql
passed

restore-to-encrypted-cluster
passed

upgrade
passed

limits
passed

self-healing-advanced
passed

monitoring
passed

upgrade-consistency
passed

security-context
passed

demand-backup
passed

operator-self-healing
passed

monitoring-2-0
passed

affinity
passed

one-pod
passed

auto-tuning
passed

scheduled-backup
passed

proxysql-sidecar-res-limits
passed

users
passed

demand-backup-encrypted-with-tls
passed

tls-issue-self
passed

tls-issue-cert-manager
failed

tls-issue-cert-manager-ref
passed

Test name
Status

scaling
passed

storage
passed

big-data
passed

scaling-proxysql
passed

self-healing
passed

upgrade
passed

self-healing-advanced
passed

upgrade-consistency
passed

security-context
passed

operator-self-healing
failed


Diff improvements

Hi,
Thank you for the comments. I'll try to address everything below by category but let me know if I've missed anything:

Docs: I've fixed the docs as requested. I'm not sure what command you're using to generate the docs so I didn't actually generate html with my changes. Let me know if I have any mistakes there that need fixing or feel free to fix them yourself. (In general, I'm not attached to my code, so you can modify anything I submit as you see fit. Don't mind at all.)
Regarding diff vs _diff: I added _diff because it makes the implementation much simpler. You can't recursively call attr.diff() without first checking attr's type because diff() only exists on subclasses of HikaruBase. For example, "some string".diff() is clearly illegal, but HikaruBase._diff("some string") is legal. So adding _diff() simplifies the implementation and removes duplicate code. (On symptom of this: in your original diff() function you had duplicate code that explicitly checked for int/float classes in two places, but in the new version it appears only once.)
TYPE_CHANGED vs INCOMPATIBLE: my rationale was that INCOMPATIBLE is returned when the high-level call that the user made to diff() is illegal because the two objects have a different type. On the other hand, if the internal diff contains a type change then TYPE_CHANGED is returned. As you point out, I'm not sure if there are actual cases where this is legal. Does the swagger file / openapi have a concept of Union types? (By the way, you might want to consider generating pydantic subclasses instead of dataclasses in a future version of hikaru. Pydantic is a python library that enforces type annotations and prevents illegal assignments.) Regardless, I'll update the code to whatever behaviour you like here. I don't think it matters one way or another for my usecase, so let me know how I should handle it.
Report messages: I changed the text to "Added:" and "Removed:" as that applies to both attributes and dictionary/list values. Is that OK?

I think fixed the other issues, except for adding a unit test that object_at_path() plays well with DiffDetail.path. I'll do that later today or tomorrow.  Let me know what you think of all the other changes.
On an unrelated note, I think you still have an issue with setup.py(). Also, can you add a doc specifying how you run the unittests? I mucked around with pytest a little, but I had to change PYTHONPATH to get it to work. How do you run it?

I've added a test for checking object_at_path and the test passes successfully.
On the other hand, the following test (not currently committed) does not pass because object_at_path can't traverse dictionary keys.
def test122():
    """
    test that you can run object_at_path on the path returned by diff()
    """
    pod = Pod(
        spec=PodSpec(
            containers=[
                Container(name="a", resources=ResourceRequirements(limits={"foo": "bar"}))
            ]
        )
    )
    pod2 = copy.deepcopy(pod)
    pod2.spec.containers[0].resources.limits["foo"] = "blah"
    diff = pod.diff(pod2)
    print(diff)
    print("object at path is", pod.object_at_path(diff[0].path))

Lmk how you want to handle this.


Allow configuration of the base URL for PlantUML Server

I would like to be able to have the speed of rapid page updates without the dependency on an outside server.  It would be nice if that (like the VS Code extension), you could configure the plantUmlServerUrl to use a per-project configured value instead of the default plantuml.com host.

I for security reason need to use a local server for create diagrams U_U

Generate diagram images locally option can be used to invoke diagram image generation locally.
Making base URL configurable should be fairly easy and while doing POST support could be added.

Fixed by https://github.com/adrianvlupu/C4-Builder/pull/29

Fixed by https://github.com/adrianvlupu/C4-Builder/pull/29


Move messages to top (Linkedin style)

Is this a BUG REPORT or FEATURE REQUEST?
Feature request
Move messages to the top and make them auto disappear after a minute.

https://css-tricks.com/pop-from-top-notification/
https://docs.djangoproject.com/en/1.11/ref/contrib/messages/

Instead of this, did a snackbar approach similar to what's done in android. Used this simple library: https://github.com/FezVrasta/snackbarjs


Make the blockchain visualization easier to interpret

Right now it's quite faithful to the UTxO, but it's hard to interpret. You often have to work backwards to match up what you expect to see with what's there.
Not entirely sure how to do this. A few ideas:

Maybe move away from Sankey diagrams as they're confusing when big.
Can we somehow get user-defined labels for transactions or inputs/outputs?

Not sure if we can - our transaction model doesn't support that kind of metadata.

Spread things out more, better labelling, legends, etc.

https://hackage.haskell.org/package/lp-diagrams

@j-mueller Have you had a look at it? Is it any good?

And we might be able to get away with doing most of the layout on the server, in which case we don't need Z3 on the client.

Well, there is a trade off here. On the one hand, doing the layout on the server keeps the complexity in the backend code. On the other hand, layout is sensitive to the available view area. In other words, we could do a better job with the layout if it was adapting to the size and shape of the browser window — that's what a nice UI would do.

@krisajenkins What are we going to do with this ticket? We decided to do some work on the visualisation by the summit, and then, revisit after the Summit. I think, we did everything for the former. Should we have a new ticket for the latter?

It is much better now! Let's use new tickets for more stuff.


Failure has occurred while loading a type.

[Error  : Unity Log] TypeLoadException: Failure has occurred while loading a type.
Stack trace:
(wrapper dynamic-method) MonoMod.Utils.DynamicMethodDefinition.HookDepositItemsDesk::SellItemsOnServer?937074312(DepositItemsDesk)

I'm working on it right now, should be fixed within a few hours.

Alright.  Issue's fixed on my end, I'll be pushing out a patch in a few minutes.
Turns out I was compiling with the wrong version.


update bubble_sort.md

Solved #30
Added source code in C++ and update the sources section.

Kindly review it and let me know if any changes required :)


Please use the iam roles attached to the machine

Today it is recommended not to save AWS secrets on a machine. These credentials should be provided by an iam role:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html
Is the secret and key mandatory?

hi, this repository has moved into the shopwareLabs. I've created a new issue there.
https://github.com/shopwareLabs/SwagMediaS3/issues/1


docs(pull_request_template): add API Impact section

High Level Overview of Change
Any PR which impacts the API should document those API changes in API-CHANGELOG.md.
That documentation should be added directly, as part of the relevant PR itself. PR authors should write (at least) the initial draft of that API-CHANGELOG entry and push that change to their PR branch so that the documentation change is made alongside the code changes proposed by the PR.
Context of Change
A number of API changes have been made without updating API-CHANGELOG.md.
Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Refactor (non-breaking change that only restructures code)
[ ] Tests (You added tests for code that already exists, or your new feature included in this PR)
[x] Documentation Updates
[ ] Release

how about adding Chore option above Release  ?

added Chore option above Release (i.e. something that only impacts developer experience e.g. .gitignore, formatting etc.)


Docs/handover

This is the handover documentation made by the 4-member front-end team submitted to the team lead. We also made some videos whose links are submitted in the respective Trello card.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as
expected)
[ ] Documentation (update or new)

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can
reproduce. Please also list any relevant details for your test configuration
Testing Checklist:

[ ] Tested in latest Chrome
[ ] Tested in latest Safari
[ ] Tested in latest Firefox

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have requested a review from ... on the Pull Request

 add handover document and videos

not reviewed so being closed.


expose "commit_time"

Continuation to #40:
so there is a "commit timestamp" -- could you expose it as well please in UTC time zone (so if commits come from different contributors within the PR we still could sort them), probably in ISO8601 i.e. YYYY-MM-DDThh:mm:ssZ ?

then I would use {commit_time}-{abbrev_commit}/ and that would allow to get the likely sorting to get the "latest" of the commits in a PR

@yarikoptic Problem: When Travis builds a tag, it reports the committed_at field as null.

ok, let's think about it

as a workaround I think I could just use time of the build and have eg. {hour}{minute}{second}-{commit_abbrev} so I would get a logical likely sorting for within a PR.  Suboptimal (will differ between CIs etc) but provides a way forward.
an idea (rejected by the end): A possible implementation for commit_time could be: clone and cache locally (and regit fetch upon rerun) that repo with all the PRs heads :  I have
[alias]
    add-fetch-pulls = !git config --add remote.origin.fetch '+refs/pull/*:refs/pull/origin/*' && git fetch origin

then we could have access to any information needed about a commit AFAIK as long as that commit is still available though -- might have been purged / rewritten etc, so wouldn't be robust for fetching older logs

as a workaround I think I could just use time of the build and have eg. {hour}{minute}{second}-{commit_abbrev} so I would get a logical likely sorting for within a PR. Suboptimal (will differ between CIs etc) but provides a way forward.

or will those times differ across jobs/workflows within the same commit+ci build @jwodder ?

@yarikoptic The timestamp is taken from the workflow run (GitHub) or build (Travis/Appveyor).  If multiple runs/builds are triggered for the same commit, they may have different timestamps.  However, for Travis & Appveyor, all jobs belonging to a given build will share the same timestamp.


Example is not loading

Flutter 3.16
flutter_map: 6.0.0
flutter_map_heatmap: 0.0.6
example does not load heatmap, small adjustments to match flutter_map 6.0.0. were added, but that is not really substantial. There are no visible errors, data list is created with WeigthedLatLng, etc.

Hey, just wanted to add that it is also not working for me on both Android and Web.
All I did was download the example project and run it. Using the default flutter_map version ^6.0.0
When I try to use it in my personal project it also just does not paint anything. Not sure what more info I can provide.

@goran-insby  I updated the sdk environment requirements  in the example. can you try again? The example project should require no changes to work. I just tried from a clean environment with no changes and it loads correctly. Do you have any more details to aid in debugging?

@tprebs Hey sorry for the delay. I've updated the environment requirements like your commit, however the heatmap layer just doesn't show. I've logged the dataset and it's definitely there when it's passed to InMemoryHeatMapDataSource
My flutter & dart versions:
Flutter 3.16.0 • channel stable • https://github.com/flutter/flutter.git
Framework • revision db7ef5bf9f (4 weeks ago) • 2023-11-15 11:25:44 -0800
Engine • revision 74d16627b9
Tools • Dart 3.2.0 • DevTools 2.28.2

Let me know if I can help in some way.

@tprebs hi, I am working on latest flutter version and everything is same as @translibrius, Heatmap is not visible
This is my environment
Flutter 3.16.3 • channel stable • https://github.com/flutter/flutter.git Framework • revision b0366e0a3f (7 days ago) • 2023-12-05 19:46:39 -0800 Engine • revision 54a7145303 Tools • Dart 3.2.3 • DevTools 2.28.4
Thanks

Im trying to debug the source code of the plugin, and seems like ImageStreamCompleter load(HeatMapImage key, decode) doesn't get called for some reason.

I think I found the issue.
For people that this is also broken, please see my pull request and test if that fixes it for you as well. #16
@onetier41 @goran-insby

Ran into the same problem, #16 fixed it for me :)

@translibrius Yeah, now we are talking, it is a fix. Thanks a lot, works like a charm. I think this can be merged.

Thanks @translibrius for the PR, this has been fixed and released in v0.0.7


Deprecate readonly and disabled args of bs form element

Open questions:

If @disabled is true a disabled class is set on the .form-group: https://github.com/kaliber5/ember-bootstrap/blob/fd3a1cbd0d9ecf176c26d8de36755d86231ef01d/addon/components/base/bs-form/element.js#L394 This is not mentioned in the deprecation message. But I'm not sure if it should be. I wasn't able to find the reason for setting that class in the first place. I wasn't able to find a .disabled class in Boostrap 4 docs at all and in Bootstrap 3 docs I have only seen it for checkboxes and radios - and in that cases it was not set on the same element as the .form-group.

Should @disabled and @readonly arguments of <BsForm> are deprecated as well? They allow setting the disabled / readonly HTML attributes for all controls of a form. I'm tending to remove that feature but would like to get another opinion before doing it.

If @disabled is true a disabled class is set on the .form-group:

I assume this was added a long time ago, to help with styling a disabled form element (not just the input). But I am fine with removing that. Was never documented IIRC.

Should @disabled and @readonly arguments of  are deprecated as well?

We used that in an app not too long ago (and I believe it was added for that use case) to quickly disable a whole form. Sure, it's not required, more syntactic sugar. But helps with reducing boilerplate and to not forget setting that argument for newly added form elements. So I would vote to not remove that! :wink:

Lets also wait here with merging until node 10 dependency issue is fixed.

@jelhan some merge conflicts, could you please rebase?

Thank you, and no worries! :)


Add RequireExplicitUpgrade: true to Chocolatey <IP_ADDRESS>

Since the package is meant for installation only -
https://github.com/microsoft/winget-pkgs/blob/825581972c7c8ebd2cea7ea0f490dea6055e65d2/manifests/c/Chocolatey/Chocolatey/<IP_ADDRESS>/Chocolatey.Chocolatey.locale.en-US.yaml#L15
We can remove this package from winget upgrade --all flow by adding RequireExplicitUpgrade: true

Microsoft Reviewers: Open in CodeFlow

Hi @pauby,
Do you approve of this change?

@mdanish-kh - I would prefer we set UpgradeBehavior: deny once 1.6 is released to pipelines

@mdanish-kh - I would prefer we set UpgradeBehavior: deny once 1.6 is released to pipelines

Had that in mind but I imagine 1.6 schema is still some months away. Oh well... since no one has made an issue for this, guess we can wait for it and do it the correct way

@stephengillie I don't have anything against this change. It makes sense. If, as @mdanish-kh says, that 1.6 is some months away, then I don't see any reason to wait for it and this be merged now.

Well my choice of words wasn't all that great. I'm not a part of the Winget team, so I was more of guessing that it has to be sometime around the release of 1.7 WinGet client which I also guess is some months away 😆
Regardless of my poor choice of words and since @pauby also approves of this change, I think we can merge this PR right now to at the very least block the package from winget upgrade --all. When UpgradeBehavior: deny is available in the validation pipelines, we can simply raise another PR to add that field in.


Ignore REPL history file

Like in #1732, Docker images can consider project directoy as $HOME

Thanks!


Feature/shifted yoga style resolvers to shared file

Summary by CodeRabbit

New Features

Enhanced error handling for percentage parsing with the charPercentageToFloat function now returning std::optional<float>.
Added new functions for resolving various layout properties using Yoga enums, improving layout management capabilities.

Improvements

Updated method signatures in the LayoutNode class to enforce const-correctness and clarify usage.
Removed several less commonly used methods to streamline the API and enhance maintainability.

Actionable comments posted: 0
Review details

@coderabbitai can you think of a way to further improve LayoutNode::ApplyStyle, perhaps using templates?

Tip
For best results, initiate chat on the files or code changes.
@andreamancuso, here is a suggestion to improve the LayoutNode::ApplyStyle method using templates to reduce code duplication and enhance readability:
template <typename T, typename Resolver, typename Setter>
void ApplyStyleProperty(const json& styleDef, const std::string& key, Resolver resolver, Setter setter) {
    if (styleDef.contains(key) && styleDef[key].is_string()) {
        auto rawValue = styleDef[key].template get<std::string>();
        std::optional<T> value = resolver(rawValue);
        if (value.has_value()) {
            setter(value.value());
        }
    }
}

void LayoutNode::ApplyStyle(const json& styleDef) {
    ApplyStyleProperty<YGDirection>(styleDef, "direction", ResolveDirection, [this](YGDirection value) { SetDirection(value); });
    ApplyStyleProperty<YGFlexDirection>(styleDef, "flexDirection", ResolveFlexDirection, [this](YGFlexDirection value) { SetFlexDirection(value); });
    ApplyStyleProperty<YGJustify>(styleDef, "justifyContent", ResolveJustifyContent, [this](YGJustify value) { SetJustifyContent(value); });
    // Add other properties in a similar manner
}

This approach uses a template function ApplyStyleProperty to handle the common pattern of checking, resolving, and setting properties. It reduces redundancy and makes the ApplyStyle method more concise.
Let me know if you need any further adjustments or explanations!
Analysis chain
Scripts executed

Thank you very much, I'll try it out.

Tip
For best results, initiate chat on the files or code changes.
@andreamancuso, here is a suggestion to improve the LayoutNode::ApplyStyle method using templates to reduce code duplication and enhance readability:
template <typename T, typename Resolver, typename Setter>
void ApplyStyleProperty(const json& styleDef, const std::string& key, Resolver resolver, Setter setter) {
    if (styleDef.contains(key) && styleDef[key].is_string()) {
        auto rawValue = styleDef[key].template get<std::string>();
        std::optional<T> value = resolver(rawValue);
        if (value.has_value()) {
            setter(value.value());
        }
    }
}

void LayoutNode::ApplyStyle(const json& styleDef) {
    ApplyStyleProperty<YGDirection>(styleDef, "direction", ResolveDirection, [this](YGDirection value) { SetDirection(value); });
    ApplyStyleProperty<YGFlexDirection>(styleDef, "flexDirection", ResolveFlexDirection, [this](YGFlexDirection value) { SetFlexDirection(value); });
    ApplyStyleProperty<YGJustify>(styleDef, "justifyContent", ResolveJustifyContent, [this](YGJustify value) { SetJustifyContent(value); });
    // Add other properties in a similar manner
}

This approach uses a template function ApplyStyleProperty to handle the common pattern of checking, resolving, and setting properties. It reduces redundancy and makes the ApplyStyle method more concise.
Let me know if you need any further adjustments or explanations!
Analysis chain
Scripts executed

@coderabbitai while trying out your solution I started wondering whether there's any way not to use lambdas as setter parameter; maybe leveraging std::bind() or something fancier/smarter?

std::placeholders

Thank you @coderabbitai
What if I wanted to use a std::unordered_map to organize the various std::bind instances, keyed by property style name, i..e "direction", "flexDirection", etc. ? I could potentially initialize such map just once, further optimizing the solution?

std::unordered_map<std::string, Setter<std::string>>

@coderabbitai
I tried std::unordered_map<std::string, Setter<std::string>> and I am getting "too few arguments".


implement batch_normalization

Implemented batch_normalisation, divide_no_nan  and few fixes for imports.

Batch Normalisation Test Results

└─▶ KERAS_BACKEND=mlx SKIP_APPLICATIONS_TESTS=True pytest keras/layers/normalization/batch_normalization_test.py
=========================================================================== test session starts ============================================================================
platform darwin -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0 -- keras/.venv/bin/python3.12
cachedir: .pytest_cache
rootdir: keras
configfile: pyproject.toml
plugins: cov-5.0.0
collected 26 items

keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_bachnorm_ignore_masked_values0 PASSED                                           [  3%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_bachnorm_ignore_masked_values1 PASSED                                           [  7%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_bachnorm_ignore_masked_values2 PASSED                                           [ 11%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_bachnorm_ignore_masked_values3 PASSED                                           [ 15%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_bachnorm_ignore_masked_values4 PASSED                                           [ 19%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_bachnorm_ignore_masked_values5 PASSED                                           [ 23%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_bn_basics PASSED                                                                [ 26%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness0 PASSED                                                             [ 30%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness1 PASSED                                                             [ 34%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness10 PASSED                                                            [ 38%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness11 PASSED                                                            [ 42%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness12 PASSED                                                            [ 46%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness13 PASSED                                                            [ 50%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness14 PASSED                                                            [ 53%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness15 PASSED                                                            [ 57%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness2 PASSED                                                             [ 61%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness3 PASSED                                                             [ 65%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness4 PASSED                                                             [ 69%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness5 PASSED                                                             [ 73%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness6 PASSED                                                             [ 76%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness7 PASSED                                                             [ 80%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness8 PASSED                                                             [ 84%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_correctness9 PASSED                                                             [ 88%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_input_fully_masked0 PASSED                                                      [ 92%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_large_value_within_autocast_scope PASSED                                        [ 96%]
keras/layers/normalization/batch_normalization_test.py::BatchNormalizationTest::test_trainable_behavior PASSED                                                       [100%]

============================================================================ 26 passed in 3.99s ============================================================================


Create the Helm charts for Zone Service

Description
As a developer I want to create Zone service for the corda network
https://docs.r3.com/en/platform/corda/1.5/cenm/zone-service.html
https://github.com/corda/cenm-deployment
Acceptance Criteria

Create the helm charts
Manual installation of the helm chart deploys Zone service

I will work on this issue


Bugs and feedback from first play session

Major issues we had:

It was hard to exit the complex using the main door. It often took many attempts and sometimes you could not use it at all. Seemed worst for the host
Found an invisible fire exit that generated in the middle of a room. Did not get a screenshot. Says it was blocked when I tried to use it

Minor issues we had:

Time HUD did not display when on the surface
Vent placement seems a bit off, some enemies got stuck on ledges because of this and some vents were kinda floating
Monsters cannot path find off of ledges (See attached video)

Feedback:

First off I LOVE the interior of this place. Looks amazing and love the lighting. I was most hyped for that and you did not disappoint. I am impressed how fast it loads too for a random generated map.
It seems very large, and loot is a bit barren, but the value of the loot makes up for that. I'd recommend tweaking the size specifically because looking at it with unity explorer the place is MASSIVE and enemies/loot spawns are spread out a lot more then vanilla
Small QOL issue, there should be some kind of ramp/ladder to the ship platform because it takes a lot of stamina to make the 4 jumps in a row it takes

(Hope i added the video correctly)
https://github.com/Skull220/Welcome_To_Ooblterra/assets/87337683/019ae31f-761b-4963-80c1-95fb263440fe

Found an invisible fire exit that generated in the middle of a room. Did not get a screenshot. Says it was blocked when I tried to use it
For the fire exit, im pretty sure if it generates like that, entering the one outside causes you to fall through the map.

went ahead and converted this to checklist format to make it easier to track


docker-outside-of-docker: socat breaks interactive support

When docker-outside-of-docker feature ends up using socat to create a Unix socket ready to use by user in container, you will experience the following inside your terminal:

echo "uname; exit 1" | docker run --interactive ubuntu:jammy will work as expected:

will otuput Linux
will exit with code 1

echo "sleep 2; uname; exit 2" | docker run --interactive ubuntu:jammy won't work as expected:

won't output Linux (output lost)
exit code will correctly be 2

(echo "sleep 2; uname; exit 2"; sleep 3) | docker run --interactive ubuntu:jammy will work as expected

This can be reproduced out of devcontainer context by starting socat:
# start socat
socat UNIX-LISTEN:$HOME/docker.sock,fork,reuseaddr UNIX-CONNECT:/var/run/docker.sock &

# using our new docker socket
export DOCKER_HOST=unix://$HOME/docker.sock

I had to dig deep but socat manual got the answer:

   -t<timeout>
         When one channel has reached EOF, the write part of the other channel is shut down. Then, socat waits <timeout> [timeval] seconds  before  terminating.  De‐
        fault  is  0.5  seconds.  This timeout only applies to addresses where write and read part can be closed independently. When during the timeout interval the
         read part gives EOF, socat terminates without awaiting the timeout.

Without tuning socat -t xxx, it will close connection after 0.5s all stdin data has been sent. docker client will then wait for container to get its exit code but will never received the subsequent output. Tuning that timeout can be a nightmare since it has to be more than the longest pause in output data.
Best is to get rid of socat and rely on group membership:

this feature mostly tries to adjust docker's group id to match the one of the docker host socket: i believe this is wrong since files in container may belong to that group and won't be adjusted accordingly
i would instead:

get group id of the docker host socket
locate group using that id and if none is found create one (e.g. docker-host or devc-docker-host to ensure no name conflict can raise)
add user to the group

I can help if needed.

Even without --interactive, socat seems to break simple docker run commands inside the devcontainer. For e.g. this doesn't output anything:
docker run --rm ubuntu /bin/sh -c 'sleep 5; date'
whereas this does:
DOCKER_HOST='unix:///var/run/docker-host.sock' docker run --rm ubuntu /bin/sh -c 'sleep 5; date'


introduce compatibility with python3

fixes bbc/pydvbcss#4
Done by launching 2to3 in dvbcss directory.
I have also manually added guard for exceptions module, that is a built-in in python3.

Ok, please don't merge yet, some tests are failing.

Thanks for doing work on this!
It would be great if the code in the examples directory could also converted to python3 compatibility as part of this branch.

Also it looks like the change to the import queue statement in task.py will break compatibility with python2.

I can see even more problems with my change. It looks like that in my use-case I would also have to update the dvbcss-synctiming repo. I don't know if I will have the time for this.


add subitem_name argument in upload_bid_document

This change is

Coverage remained the same at 75.516% when pulling 6a5f0c400760a38c47a9196dded40d7fd2e382c2 on ivanka12:upstream into 005fa9a538073a6a0a5029f70c762b51ecc07630 on openprocurement:upstream.


Proxy istio-ingressgateway with ingress

I want to proxy istio-ingressgateway with ingress so I can access isvc using domain name instead of istio-ingressgateway svc ip. Access is in the form of
requests.post(url="http://easy-test01.xy.com/v1/models/tabular:predict", json=data, headers={"Host": "tabular.default.example.com"})

The ingress yaml is
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: istio-ingressgateway-ingress
  namespace: istio-system
  annotations:
    kubernetes.io/ingress.class: nginx

spec:
  rules:
  - host: istio.com
  - http:
      paths:
      - path: /v1
        backend:
          serviceName: istio-ingressgateway
          servicePort: 80

But I get a 503 status code.
Can I access isvc through a domain name through ingress proxy istio?

@SeibertronSS are you using the serverless or raw deployment installation

I install the kserve by kubeflow-manifest.  I think maybe there is something wrong with my DNS resolution.


Data Channel support?

Are we planning for data channel support as well ?

We have a implementation of a working data channel. However it still needs more testing and I need to find time to clean it up before we can do a PR

By when can we expect data channel support in Licode. Is there any ETA
Thanks

+1

Is there any news?

What's preventing from adding support for data channel? It shouldn't be that hard to implement, is it? Perhaps because it's not much useful while we can use WebSockets instead.
As a use case, I'm going to provide a WebRTC test page for users so they would be able to diagnose their Internet or network and see if they can communicate with the server through WebRTC. I think the best option for this test would be data channel.
I'm sure there are more use cases and I hope this happen in a near future.

We're currently focused on improving videoconferencing and will be, at least for the short-to-mid term. It's not a matter of data channels being "hard" to implement but a matter of how we decide to use our resources and what we want to prioritize.
Having said that, DataChannel would be a nice addition and we would love to see a PR implementing this for Licode.


[Breaking] Update css-to-react-native

Brings in a rewrite of css-to-react-native, which has a few breaking changes:

You must use px for non-zero lengths (margin: 50px 20px 0)
You must use quotes for font-family (font-family: "Georgia")

We have a codemod to do most of this, but you’ll have to fix interpolated values manually.
Testing. We need people to test for any major regressions, spec inconsistencies, and also the codemod!

Can you submit a new, non-conflicted PR so we can merge this and get some feedback? Sorry for the delay!


Add Aero USD+-sFRAX vault

API: https://github.com/beefyfinance/beefy-api/pull/1400
Moo Aero USD+-sFRAX
Vault 0x5A60F3eCe2B663796Cd2b86c213Cf2274CD4fb4F
Strat 0xC8Bf56855998f0FAe701932b8F8525D3f436C8ea

Frax have transferred ownership so this is ready to go, @schnarkus can you resolve conflicts as bump the timestamp?


Fix breaking bug with change in avatar object structure

attribute that contains the string changed from avatar.string to avatar.__string
Adding also some checks and meaningful messages to notify if changes might break the js again, while falling back onto static avatar instead of breaking the page.

Hi @theCrius - thanks for this PR! We're going to take a slightly different approach here to make it more robust across future discourse/ember changes, but the end result will be pretty much the same as your proposal. See #25


Merge series/0.22 into series/0.23

Uh oh, within series/0.23 have the 'green CI' isn't so easy 😞

Yeah, I am trying to fix one more thing in Blaze for $WORK, and then I want to focus on a release train, but CI is in terrible shape in 0.23, so that's going to be a blocker.


Add support for sending POST (and other methods) requests with body to http3-client

This adds support for setting a custom HTTP method in http3-client and send request body.
It's not a whole lot of additional complexity IMO so adding this here shouldn't be too bad, though lsquic-client also supports this (and maybe h2load?), so I'm fine to leave this out as well.

LGTM.
I have one question - what if POST request body is big? Do we have a size limit of send_body() or interface for streaming upload?

@junhochoi you can call send_body() multiple times to do streaming, if that's what you are asking. Though in the examples we just do a single call for simplicity.


Did I miss something? Isn't 'touch-carousel' class required?

I couldn't get this to work until I added the 'touch-carousel' class to my carousel.  This is not found in the documentation.  Am I missing something?

The lib will set the mentioned class by itself.


fix(connlib): large upstream dns message

If edns0 doesn't work correctly DNS servers might respond with messages bigger than our maximum udp size.
In that case we need to truncate those messages when forwarding the respond back to the interface and expect the OS to retry with TCP.
Otherwise we aren't able to allocate a packet big enough for this.
Fixes #7121

If edns0 doesn't work correctly DNS servers might respond with messages bigger than our maximum udp size.

I think the reason why eDNS may fail here is because we directly forward the DNS message payload. We would have to rewrite the eDNS header to say our max-supported payload. Although I guess clients should already set this based on the MTU? Maybe not all OS do that.


"RBM needs some love" ?? (well StackedAutoEncoderMnistExample to be exact)

Quick test of a few examples on git pull from 14/5 for 3.9-SNAPSHOT
Openblas, Windows 8-64 16GB Core I5-2500K, Java 1.8.0:77 64 bit
CNN are looking good - LenetMnistExample
v3.8 1324ms -> v3.9(14/5)  398ms
StackedAutoEncoderMnistExample - a lot slower
v3.8 206ms -> v3.9(14/5) 352ms *********
DeepAutoEncoderExample - about the same
v3.8 507/255/128/49/15/52 -> v3.9 506/255/128/49/15/51

A lot of that is sampling related.


Consider a heartbeat/monitor helper for subscriber

It would extremely useful for users and for maintainers if pubsub had a sort of "heartbeat"/"monitor" helper. For example:
subscription = subscriber.subscribe(...)
monitor = pubsub_v1.subscriber.Monitor(
    subscription,
    period=5 * 60  # Output once every five minutes.
)
monitor.start()

future = subscription.open()
future.result()

Every 5 minutes, the monitor would wake up and output the following to stderr:
# Pub/Sub Monitor for subscriber 0xDEADBEEF
subscription_name: /project/my-project/subscriptions/my-subscription
total_messages: 5000
ack_p99: 10s
outstanding_requests_p99: 10
...

/cc @lukesneeringer

@jonparrott so this should be closed also?

Yes
On Thu, Mar 8, 2018, 6:05 PM chemelnucfin<EMAIL_ADDRESS>wrote:

@jonparrott https://github.com/jonparrott so this should be closed also?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/GoogleCloudPlatform/google-cloud-python/issues/4896#issuecomment-371689378,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAPUczoTbG_8iosoYsdBromiEaAkGsViks5tceNtgaJpZM4SJFtr
.

Closed via chat due to being unnecessary.


cpu-z

I got an hash error:
λ scoop install cpu-z
Installing 'cpu-z' (1.80).
cpu-z_1.80-en.zip (2,5 MB) [=======================] 100%
Checking hash of cpu-z_1.80-en.zip... Hash check failed for 'http://download.cpuid.com/cpu-z/cpu-z_1.80-en.zip'.
Expected:
5644b3beb34d7ec2a2650fe2ba0d3496d19632c3301819907f2248b9819d8ef5
Actual:
3c2fdb6f79cb2f1a2dac9ace906956b4b9f6f0ff6bb0d5f98ab15f335c0b73ad

Fixed, please run scoop update and try again 👍

wow, awesome. that was fast. love it.


Migrate release notes

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release330

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release331

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3310

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3311

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3312

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3313

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3314

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3315

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3316

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3317

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release33172

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3318

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3319

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release332

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3320

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release33202

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3321

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release33212

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release33213

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3322

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release33222

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release33223

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3323

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3324

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release33242

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3325

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3326

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3327

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release333

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release334

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release335

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release336

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release337

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release338

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release339

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release340

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3402

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release341

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3412

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release342

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3422

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

Unsupported release notes are already archived in this repo.

I've added the release notes page and the ToC-hiding code (oh god it's hacky). We still need to migrate these two new docs:

https://twiki.grid.iu.edu/bin/view/Documentation/Release3/Release3328
https://twiki.grid.iu.edu/bin/view/Documentation/Release3/Release343

@edquist could you convert those two docs and add them to this PR?

@timtheisen just a heads up of what the docs are looking like for the release notes. The October release notes will have to be in markdown

And the other checkboxes:
https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/ReleaseNotes

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release3328

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash

https://twiki.opensciencegrid.org/bin/view/Documentation/Release3/Release343

[ ] Enter date into "Migrated" column of google sheet
[ ] Move TWiki document to the trash


[BUG] 413 Request Entity Too Large

I was sending a couple hundred page pdf request.
The site says a 1000 page maximum.
But i get a 413 request entity too large error.

We limit to 750pages, and 50Mb per PDF, how big are your files?

oh i see, i have one that is 300ish pages but 80mb, that's why.
would the best path be to split the pdf into two, parse them separately, and combine the output nodes?

Sorry for the long delay. Yes, you can definitely do what you describe. We plan on supporting larger documents in the future.


Only append delta if feature is set

The current block appears to be checking if there are deltas and returning early if there are not, which is just extra work of what the next block would be doing

@aedrax Could you switch it around so that if the flag exists, then run the out.append(... please?
For how this is currently setup and running, I like the idea of checking the flag then appending if true rather than not checking and just appending if there's something there.

Updated to the new behavior


Contact! doesn't progress when climbing down ladder

Steps to reproduce

Progress quest until Explore the dungeon
Go down ladder east of Jex
Go down the trapdoor (next to the ladder you just descended from)

Current behaviour (bug)
Quest helper tells you to climb down the ladder east of Jex (reverts back 1 step)
Expected behaviour (correct)
Quest helper detects that the player climbed down the trapdoor and continues the quest as normal
Relevant logs and/or media (optional)
https://user-images.githubusercontent.com/3416278/167307319-c3712acb-9774-4c07-944d-7a8b759610a5.mp4

Also experiencing this issue.

Closing this as PR #772 addresses this issue


apk.new_zip only adds new_files to a zip if deleted_files is not None

Hello, I'm unsure if this is a bug or intended feature. Please tag this with question, I don't seem to have access to tags.
When calling apk.new_zip('example.apk', new_files={'Anything':'content'}) file 'Anything' does not get written.
file 'Anything' only gets written if deleted_files='no-thing' i.e. is any string other than the file name in new_files. In this example, deleted_files must be something other than 'Anything'.
https://github.com/androguard/androguard/blob/9f88ec774ec9b089f060e075785fe091465d8e22/androguard/core/bytecodes/apk.py#L870
I would expect one of the following two things to happen:

new_files and deleted_files to work independently, or
new_files to work if the new_files file is also in the deleted_files string.

My preference would be for 1 - if deleted_files=None, then new_files are still written into the zip. Existing files are overwritten.
I could understand 2 - if a file is to be deleted, then it's overwritten with the file in new_files.
I don't understand why it works as in the code at the moment - new_files are written to the zip, if deleted_files is not None, and if the file name in deleted_files does not match new_files.
As on my other issue happy to provide a patch for this, once I know what the expected behaviour is.

I never used the function :D But it looks like either the documentation is wrong or the implementation.
I think it is the implementation :) I think you should be able to create new files with a given dict of files and also remove files from the APK if necessary.
I would be glad if you can provide a patch!

Current plan to replace the code at https://github.com/androguard/androguard/blob/9f88ec774ec9b089f060e075785fe091465d8e22/androguard/core/bytecodes/apk.py#L867
for item in self.zip.infolist():
    if deleted_files is not None:
        if re.match(deleted_files, item.filename) is None:
            buffer = self.zip.read(item.filename)
            zout.writestr(item, buffer)
    if new_files is False:
        if item.filename in new_files:
            zout.writestr(item, new_files[item.filename])
zout.close()

I haven't tested that the new_files conditional block will overwrite existing files, I'll do this tomorrow.


ERROR: Unable to acquire cookie.

It worked for a long time, thank you very much, and then I noticed that it stopped synchronizing with an error:
ERROR: Unable to acquire cookie.
Message: only content-type application/json is allowed
All 3 containers are the latest.

find the problem

@alexsahka - Please elaborate.
Raising an issue like this, then closing without explanation is one of the worst things you can do as both a user and a developer.
It doesn't matter how seemingly straightforward the solution is, just post it for the benefit of others before closing.

I stated that --- All 3 containers are the latest.
But mysteriously, one of the containers was not updated to the latest
After updating to the latest, everything starts synchronizing as it should.
Wanted to delete this issue but wasn't able for some reason. My mistake who needs this?

Thank you for providing more context (and so quickly!).
Even though it's closed, please leave this issue up for others that may encounter this problem in the future - it may appear in Google search results.
Thanks again, and happy holidays :)


Add obr18.txt

let's add a contributing file, so we can work better, together!

@VolkovAnton Thank you for your contribution. Regrettably, the description of this organization clearly suggests that this is a center which somehow helps to teach programming, but it is NOT an educational organization. Also, the website org18.udm.ru does not exist, and we are not able to read more about this organization.
I have to close the request without merging. Please ensure you are familiar with this repository rules located at the bottom of this page and submit a new request with correct information.
If the domain name which you submit is different from the official website's URL, please comment your pull request, and let us know what the official website URL is.
Thank you for the understanding!


Link to wiki is broken

Describe the bug
If you click on the Wiki button, you will get a 404 error.
To Reproduce
Steps to reproduce the behavior:

Go to https://tum.live/
Scroll down to the footer
Click on "Wiki"

Expected behavior
A working link should open.
Screenshots
https://github.com/user-attachments/assets/89b2416f-8fdc-4d3b-88cb-a8aeec2a1ea4
Additional context
Related to

#1355

I'm not sure, but I think this was just a temporary problem.
Navigating to the Wiki from the footer seems to work as usual now.
I think you can close the issue.

Yes, works again - thanks!


Remove debugging symbols in release.

This reduces the NativeScript.framework from 750MB to 50MB.

ping @dtopuzov @ErjanGavalji


add release config

Codecov Report

Merging #31 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master      #31   +/-   ##
=======================================
  Coverage   64.88%   64.88%
=======================================
  Files          13       13
  Lines         168      168
  Branches       22       22
=======================================
  Hits          109      109
  Misses         47       47
  Partials       12       12

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 d4afb0b...a171f4f. Read the comment docs.


bugfix: Fix state_class for enums and strings

@davidrapan What is the difference between options and lookup?

lookup is "older" property. options it's how it is called within HA ecosystem. When is options property missing it's filled using lookup table and at the same time device_class (or class) is set to enum.
Those changes are not yet finalized.


Can't start the app | ReferenceError: ReadableStream is not defined

After "npm run serve", this is what I get:
`><EMAIL_ADDRESS>serve

tsx server.ts

(node:5272) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time
(Use node --trace-warnings ... to show where the warning was created)
ReferenceError: ReadableStream is not defined
at file:///D:/user/OmniChain/omnichain/node_modules/@langchain/core/dist/utils/stream.js:6:45
at ModuleJob.run (node:internal/modules/esm/module_job:185:25)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:281:24)
at async loadESM (node:internal/process/esm_loader:88:5)
at async handleMainPromise (node:internal/modules/run_main:65:12)
Node.js v17.0.1`
What do I do?

Read the requirements please. You need NodeJS v20.11.0 or higher.
https://omnichain.zenoverflow.com/docs/setup


Buffs to servants on the 1st or 2nd slots during wave 2 get redirected to the 3rd slot servant.

Preparation

[X] I tested the latest release
[X] I looked at other issues (even the closed ones)
[X] I read the Troubleshooting Guide

FGO server
NA
FGA build number
1597
Describe the bug
After mentioning the issue on  the gamepress FGA thread I was advice to make a bug report here:
It seems than when I have servants like waver or Skadi buff the main dps servant during the second wave, they instead target the servant on the third slot.
Here is the command list for this  run. Somehow even though I input d1 and g1 (aka dantes) instead the result is d3 and g3 (support skadi)

As a work around I have been setting the buff target (aka dantes) on the third slot for now and write a new command list.
The same had also happened in the past when the buff target (space ishtar) was on the second slot and so I also had to move her to the third slot and write an appropriate new command list.
I hope this somehow helps you guys to make this amazing app even better.
I also include a recording
Video
https://youtu.be/q--drKcLQW0?t=55
Device model
Xiaomi Poco x3 pro
Android version
11
Screen size
No response
RAM
8GB

Check if you have Skill Confirm enabled in FGA. Should be disabled.

Check if you have Skill Confirm enabled in FGA. Should be disabled.
I can confirm that this fixed it.
So this is something that should be disabled if the ingame confirmation is also disabled?
Thank you for the solution and sorry for reporting as a bug something that was just a lack of knowledge on my part.

Yes, it's disabled by default in FGA but enabled in FGO.
It's also part of the Troubleshooting guide regarding wrong skill usage.


[CRITICAL] Opening attachment from email does not reliably open the attachment

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

Version Number:
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @quinthar
Slack conversation: https://expensify.slack.com/archives/C05LX9D6E07/p1716683200557169
Action Performed:
Break down in numbered steps

Have two accounts, Alice and Bob
As Bob, have the app closed so you receive the messages through email (but be signed in)
As Alice, send some messages to Bob
As Alice, send pictures to Bob
As Bob, wait for the email
As Bob, click on the email picture

Expected Result:
Describe what you think should've happened
The App should load with the image modal open and the picture shown there
Actual Result:
Describe what actually happened
The modal is opened but the image does not actually load
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video ev
https://github.com/Expensify/App/assets/36083550/afd85bec-ecbf-45b9-b846-f61bcee2574e
idence

View all open jobs on GitHub
Issue OwnerCurrent Issue Owner: @thesahindia

@mountiny Maybe you logged in expensify with different account.
for example:
your gmail is<EMAIL_ADDRESS>and you are logged in Expensify as<EMAIL_ADDRESS>in this case when you receive an attachment as for example<EMAIL_ADDRESS>you will receive the mail at<EMAIL_ADDRESS>but you can't  access it because you are logged in Expensify as<EMAIL_ADDRESS>

Good question, but no, I'm logged in with the right account.  ~Again, if I repeat the same action multiple times, I get different results.~  UPDATE: I've tested this many times back to back, and even I can't reproduce it anymore.  Next time I see this I will capture a trace to make this more solvable.  Thanks for taking a look!

Actually @kidroca noticed that the source URL in the email isn't being URL encoded, which is probably what was causing it to break maybe for some images and not others?

original email is working... so closing again.


[api] add API of getting Thread Version

This PR adds the API that getting the Thread Version of current Thread interface.
Thread Version is required by border agent to publish its service through mDNS. The value is used as the value of key tv in a DNS-SD TXT Answer Record to tell a commissioner the Thread version of current border agent.

Should we follow the Semantic Versioning and return the Thread Version in a format of X.Y.Z?

@wgtdkp How about adding API to get Thread Version instead of Thread version string? I think Thread Version is well defined and more accurate than the string.

@wgtdkp How about adding API to get Thread Version instead of Thread version string? I think Thread Version is well defined and more accurate than the string.

makes sense.


I currency

the author sees it as a good idea to simplify several central abstractions to pure interfaces.
by request in Email @timmolter has requested a laser focussed debate and vote on this PR.

some default methods were extracted from the refactored classes into the replacement interfaces
the author preserves 100% unit test success
the PR went to great lengths to minimize change of imports in the DTO's affected.  unused imports were typically removed by intellij.
there are no changes to poms or build methods in this PR.
@timmolter has expressed intent to nominate this PR against a higher version increment designation, to indicate that this involves major changes.
constructors have been converted to factory methods and builders in the interfaces.

at no point was the functionality or scope changed for any given object's construction.

the implementation classses were refactored to .impl.Class  pattern to keep clarity of the original declarative choices.
there are notable whitespace/formatting impacts
files that were touched were granted some automated tweaks in response to some of the shuffling due to builder parameters being broken out.
there's some leftover full class names which don't affect anything in the code.  these couldn't be normalized cleanly without touching new files.  there's no consequence to this decision.
when discussing java Interfaces there seems to be a perfect storm for bikeshed arguments.  to respect the reader's and the author's time, please limit the discussion to risks pertaining to the contents of this PR and limit conjecture.
The author acknowledges that opinions about code can be personal preferences but the author's opinion is that

Adapters are unnecessarily induced by the final Class DTO's.  if you like Adapters, this PR doesn't change anything for you.
A real-world example on more than one occasion has been with Balance ".total" and ".available" causing NPE's.  the consumer of a DTO should have no surprises about internal state, and so if one chooses to use an interface, there will be no surprises or unexpected NPE's by using that interface to define the method outputs specific to the API being queried.

thank you  @walec51 I can represent my own ideologies without your assistance.
Apoligies to the reader, and to Adam Walczak and in advance for whatever the reader may perceive as too much explaining, or too little explaining, or interpreting comments as FUD when they were something else, or attempting to minimize the amount of irrelevant comments in the PR. see .11 above.
what's important is to review the code and report back to Tim.

could you just stop deleting and creating PR's with the same code for the 8 time...
@timmolter do you confirm that this off-the-github conversation took place?
because to me this just looks like an attempt to hide any comments that question the new direction that its author wants to pave for this library


Add safe check

Introduce the is_available function to check if a machine can be created.
Add the safe_create function that relies on the is_available function to first check if it is possible.
Update example 1 with an example of this function.

Fixes #72

Very nice!


Added lzsse2/lzsse2_platform.h - Platform/Compiler support for Visual…

… Studio, Clang and Gcc.
Compiler detection is from the table here: https://blogs.msdn.microsoft.com/vcblog/2015/12/04/clang-with-microsoft-codegen-in-vs-2015-update-1/

Good stuff, thanks.

I've expanded this out to all the codecs now. I decided to go with a separate header for each as it keeps them all completely independent code for now.

I wasn't sure, but I like the separate header approach given that the type of data each is good for varies so the most common usage case is probably for one of the codecs rather than all.


jdk_nio_0 in Test_openjdk8_hs_sanity.openjdk_s390x_linux takes 2 - 3 hrs to run

Test Info
Test Name: jdk_nio_0
Test Duration: 2 hr 24 min
Machine: test-marist-ubuntu1604-s390x-3
TRSS link for the test output: https://trss.adoptopenjdk.net/output/test?id=5e50405bc044422f31fd3b22
Build Info
Build Name: Test_openjdk8_hs_sanity.openjdk_s390x_linux
Jenkins Build start time: Feb 20 2020, 11:49 pm
Jenkins Build URL: https://ci.adoptopenjdk.net/job/Test_openjdk8_hs_sanity.openjdk_s390x_linux/124/
TRSS link for the build: https://trss.adoptopenjdk.net/allTestsInfo?buildId=5e503fd0c044422f31fd39b0
This test target, in particular 4 test classes within it are consistently taking a very long time to run on s390x_linux platform.
If you look at https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_hs_sanity.openjdk_s390x_linux/125/testReport/ and sort tests by Duration, you see some of the big offenders... (jdk_nio and jdk_security1 targets)

HS:
FindDecoderBugs 1 hr 31min
TestStringCoding 58min
FindEncoderBugs 43 min
FindOneCharEncoderBugs 15min
For comparison J9 from the same jdk8 pipeline build, https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_j9_sanity.openjdk_s390x_linux/118/testReport/:
FindDecoderBugs 31sec
FindEncoderBugs 18sec
FindOneCharEncoderBugs 8.1sec
Next steps:
Need to check how Upstream builds look.
Run on all s390x machines, need to rule out if only slow on certain machines (to rule out machine issue).
Look at test code (TestStringCoding) and bugs listed in it (and in bugs DB in event its already reported/known)

@smlambert That's expected. OpenJDK 8u on s390x is Zero (no JIT). I'd suggest to run a limited set of tests for this combination.

Thanks for the clarification @jerboaa, I will update the build pipeline scripts so these test jobs are not triggered nightly.


Reactstrap NavLink doesn't seem to work with HashRouter?

I have my router configured using HashRouter.
<HashRouter>
        <Switch>
         ...

Now I can navigate directly to a route using http://localhost:3000/#/contact for example.
If I use the Link component from react-router-dom then I can navigate using the link it produces:
<Link to="/contact">Contact us</Link>

Becomes
Contact us

But when I use:
<NavLink to="/contact">Contact us</NavLink>

Becomes
Contact us

Which doesn't work.
What's going on here, am I using it wrong or does it just not work?
Thanks

While it's not documented, you have to use <NavLink> as follows with react-router:
<NavLink tag={Link} to="/somewhere">
Reference:
https://github.com/reactstrap/reactstrap/issues/298
https://github.com/reactstrap/reactstrap/issues/83
Perhaps we should add this to the documentation? It seems to come up pretty often.

I'm surprised there isn't more to this thread. Has this been added to any docs? If this is necessary for basic functionality, it should be stated in the docs, right?

Fiixed it with hashType="noslash"
<HashRouter hashType="noslash">           <Routes />   </HashRouter>


Is this still maintained?

Not sure if this is still maintained. Last activity seems to be from last year.
Just in case anyone is looking for an active fork (not an alternative)
Check out: https://github.com/risen228/tsyringe-neo

I haven't had time to work on this lately, but @Xapphire13 said he might do some updates.

@MeltingMosaic @Xapphire13 thank you so much for the response. It is unfortunate that you guys don't have the capacity now to maintain this project. I am not sure what's the politics here but I would suggest that at least put a notice in the readme about the status of the project.


refactor: support vite 2

@knightly-bot build this

@knightly-bot build this

Hello @antfu ! I love the idea of knightly :)
If I understood, I can test it with something like this ?
  "vite-plugin-voie": "npm:@knightly/vite-plugin-voie@pr11",
  "voie-pages": "npm:@knightly/voie-pages@pr11"

Hello @antfu ! I love the idea of knightly :)
If I understood, I can test it with something like this ?
  "vite-plugin-voie": "npm:@knightly/vite-plugin-voie@pr11",
  "voie-pages": "npm:@knightly/voie-pages@pr11"

@stafyniaksacha Knightly didn't trigger for some reason, I will have a look later. You can use this for now
"vite-plugin-voie": "npm:@antfu/vite-plugin-voie"

And use the official voie-pages

@stafyniaksacha Knightly didn't trigger for some reason, I will have a look later. You can use this for now
"vite-plugin-voie": "npm:@antfu/vite-plugin-voie"

And use the official voie-pages

Great work, thank you! 😀

Great work, thank you! 😀


Add docker to the devcontainer

And move docker-compose.yml to the root, to make it easier to run docker-compose commands.

LGTM whenever you're ready.

Refs https://github.com/microsoft/vscode-remote-release/issues/6844


Preprocessing of training data

Hi! I am trying to reproduce the training results of some models. Normalization is used everywhere as a preprocessing.
As I understand it, a script is used for this: normilize.sh
Does anything else apply besides this. For example, normalization of punctuation or some specific techniques for different languages?

The basic preprocessing of training data is defined in https://github.com/Helsinki-NLP/OPUS-MT-train/blob/master/lib/preprocess.mk. Scripts in https://github.com/Helsinki-NLP/OPUS-MT-train/tree/master/scripts/cleanup are meant to do language-specific things and right now don't do much.


More aggressive CI

Run CI on Windows and embedded. More Linux targets. All using stable minus 2 releases.
Run CI on all branches, not just when doing a PR.
Rebased and cleaned up conflicts from #132.
Tests and Builds are separated.
We test both 32 and 64 bit on Windows and Linux.
We build for all major architectures, with and without no_std (but can't execute/run tests). Also one embedded target, Cortex-M0

In a couple stable releases, we can remove clippy_check in favor of just the Cargo.toml lint configurations.

Rebased in https://github.com/Grinkers/edn-rs/pull/2 and part of #140

@evaporei re-opened to start unraveling
https://github.com/edn-rs/edn-rs/pull/135


Walter and Andrei want dub to stick with JSON and ditch SDL

Since Sonke hasn't yet jumped in on the discussion in the D newsgroup on this, I'm creating this bug report / enhancement request to highlight the issue. But per this newsgroup discussion
<EMAIL_ADDRESS>Walter and Andrei are both firmly against dub using SDL and seem to want it to use JSON exclusively rather than use SDL at all (let alone as the default). Andrei in particular seems to think that using SDL is a huge mistake.

We've resolved this case by deciding to keep SDLang, but to also keep JSON as the default format for now.

Please switch default view of http://code.dlang.org/package-format to JSON


fix(callbox, avatar): events and styling

Fix (Callbox, Avatar): Events and styling
:hammer_and_wrench: Type Of Change

[x] Fix
[ ] Feature
[ ] Refactoring
[ ] Documentation

:book: Description

Removed .stop modifier from click events to allow click events to bubble up.
Added emits to callbox to avoid duplicating native click event on vue 3
Changed clickable title styling to use underline instead of background color on :hover and :active.
Updated callbox variants to use <dt-stack> instead of custom divs with d-d-flex

:bulb: Context
Received design feedback on callbox implementation
Received a bug report that avatar wasn't triggering the click event correctly.
:pencil: Checklist

[x] I have reviewed my changes
[ ] I have added tests
[ ] I have added all relevant documentation
[ ] I have validated components with a screen reader
[x] I have validated components keyboard navigation
[ ] I have considered the performance impact of my change
[ ] I have checked that my change did not significantly increase bundle size
[ ] I am exporting any new components or constants in the index.js in the component directory
[ ] I am exporting any new components or constants in the index.js in the root

:crystal_ball: Next Steps
Release and update on product.
:camera: Screenshots / GIFs

@juliodialpad,
Underline is good. Can you update all the Critical (née Danger) buttons to use the regular critical/danger buttons?
https://github.com/dialpad/dialtone-vue/assets/1165933/465a7029-17ef-4f32-8e48-4e5ef49d5b1a

@juliodialpad,
Underline is good. Can you update all the Critical (née Danger) buttons to use the regular critical/danger buttons?
callbox-critical-buttons.mov

changed, don't know what I was thinking while creating this haha sorry

@juliodialpad,
Yep, critical buttons spot-on. Incidentally, the hover/active bgcolor for those were a bug (far too light), and I just updated that in the Design Tokens via https://github.com/dialpad/dialtone-tokens/commit/00902ebc7a0d2fe57d847906c635cfe26ee21f46.
I approve of the visual of these changes, defer to PR approval from others given the Vue changes. (oh, and good call converting to dt-stack, do that as often as possible everywhere).

and I just updated that in the Design Tokens via dialpad/dialtone-tokens@00902eb.

Great, I'll do a new release of this.

@juliodialpad Code looks good but please see my comment on percy.

Assumed that <dt-stack> component would align items, added d-ai-center class to center the items vertically.

If that's an expected behaviour of dt-stack maybe this addition should be added to the component.
Not sure about it. Maybe design could enlighten us.

Assumed that <dt-stack> component would align items, added d-ai-center class to center the items vertically.

Hmm I think this probably is a good idea.. It would need to be possible to override it as well though

Assumed that <dt-stack> component would align items, added d-ai-center class to center the items vertically.

Hmm I think this probably is a good idea.. It would need to be possible to override it as well though

Yes, maybe a prop called alignment, I'll create a ticket

Yes, maybe a prop called alignment...

I've added comments on that task too.


Design a bind.json file format allowing to create full-featured iOS/Android extensions for Haxe

The idea would be to create a bind.json file that provides all required information to actually make and iOS/Android extension work with Haxe.
For instance, on iOS, it would allow to specify:

Objective-C/Swift files that are exposed to Haxe
A podspec file (relies on Cocoapods) allowing to include and configure everything needed on iOS side of things

On Android, it would allow to specify similar informations:

Java files that are exposed to Haxe
Android dependencies it may need (relies on Gradle dependency system, accepts jcenter libs)
An Android Studio project (or built AAR) dependency that will be included in final app

I would make it possible to run a single call of bind utility to make an iOS/Android extension work with various build systems.
It would be possible to generate a lime/openfl-compatible include.xml file if lime can handle bind requirements (Xcode workspaces with Cocoapods dependencies, Gradle AAR/jcenter dependencies).

Incredible work on this quite impressive.


Allow custom keywords to make it easy for children in different languages to contact typescript for simple computational experiments

Search Terms

custome keywords
Suggestion

Allow custom keywords to make it easy for children in different languages to contact typescript for simple computational experiments
Use Cases

Let children play with programming.
eg:
lingascript (Multilingual Javascript, based on Typescript)
chinese keywords typescript, use cases of chinese keywords typescript
Examples

//English
function sum(a:number,b:number):number{
    return a+b;
}
//Chinese
函数 加和( a:数字, b:数字) :数字{
    返回 a+b
}
//Russian
функция суммировать( a:цифра, b:цифра) :цифра{
    возвращение a+b
}
//Japanese
関数  和を加える( a:数字, b:数字) :数字{
    戻る a+b
}

Checklist
My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

Could achieve via wrapping the keyword mapping functions to a separate file, like this https://github.com/gasolin/lingascript/issues/18

This requires a keyword standard in different language environments.
Unfortunately, no standardization organization has set standards for it, and because of the inaccuracy of translation, there is not even a recognized standard.


SMTP for pgadmin

Setup SMTP for pgadmin.
Avoid referencing secrets individually (make Willard happy)

Docs:

https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html

Close in favor of #585?

Agree, re-open pgadmin is brought back to life


Upgraded Mesh's should work with downgrades materials (uploaded by BloodWorkXGaming's Request)

Currently meshes only sieve what has recipes. Is this a request to have the default recipes include all blocks for all meshes or for meshes to include on lower tier meshes' recipes (with equal or greater chances)?
I'm not sure I'd support the second because some packs (e.g. Sky Factory 3 with the predecessor mod) used the separation to great effect. But if this is just a suggestion to mix up the default recipes it'd be an interesting to revamp the default progression.
Could you provide a little more detail for those of us not involved in the conversation referred to?

Perhaps a configuration option to enable that latter bit? Maybe even an option for the first bit too. For someone who just downloads his favorite mods on curse like myself, swapping meshes every 5 minutes to get what I need is quite annoying, and honestly uninteresting. All it adds, in my opinion, is busy work.

Option to flatten sieves tiers merged. Adding to curse soon.


(Feature request) Add fail safes to submitting during a penalty period

I don't want to fall into the incident where I accidentally submit something late when a late penalty is in place, as there is no way to reverse that, so there should be extra confirmation steps to prevent that from happening.
Note: these fail safes should only be in effect if the penalty is strictly greater than 0.00%

Hi @ICPRplshelp,
MarkUs currently displays a warning at the top of the submission page when you are within a late penalty period. Additionally, there is a detailed description of the late penalty on the assignment description page.
If you still submit an assignment in error after the initial deadline you can ask your instructor to grade an earlier version and apply the penalties as they see fit (instructors can make that choice according to their course policies).
We are open to suggestions if you have additional confirmation steps in mind.