Constructor undefined when building highlight

Hello
I try to add a new language:
/*
Language: Yo
*/

function(hljs) {
  return {
    aliases: ["yolang"],
    keywords: {
      keyword:"yo yo!"
    }
  };
}

but when I try to build it: node tools/build.js yo, I've got this error:
Starting build.
Copying documentation.
Generating demo.
Building highlight.js pack file.
Writing documentation.

/Users/k33g_org/Dropbox/Public/highlight.js/tools/tasks.js:219
        blob = new blob.constructor(blob.result, meta);
                       ^
TypeError: Cannot read property 'constructor' of undefined
    at addMeta (/Users/k33g_org/Dropbox/Public/highlight.js/tools/tasks.js:219:24)
    at /Users/k33g_org/Dropbox/Public/highlight.js/node_modules/gear/lib/blob.js:75:21
    at fs.js:208:20
    at Object.oncomplete (fs.js:108:15)

Any idea?
If I want to build an already existing language like go, it's ok.
I work with node v0.10.35
regards
Philippe

It may be caused by outdated dependencies (even though it doesn't explain why existing languages do get built). Can you make sure it still happens after npm update?

Nope, I'll take it back. I just reproduced this error locally, so I'll have a look now.

Okay, so the problem is that you're supposed to also have a file with the test snippet for the languages located in "test/detect/yo/default.txt" that is used to build the demo page along the library. But we really need to fix the obscure error reporting here.

Thank you very much for the response :)

Fixed. To clarify, the test snippet is still required for the tests to pass, I just made it so the browser build doesn't crash if you hadn't yet a chance to create one.

Fine, it runs :+1:

btw, I don't want to create an impression that we always react on bugs this fast :-) It's pure luck :-)

:)
On Sat Jan 24 2015 at 8:24:58 AM Ivan Sagalaev<EMAIL_ADDRESS>wrote:

btw, I don't want to create an impression that we always react on bugs
this fast :-) It's pure luck :-)
—
Reply to this email directly or view it on GitHub
https://github.com/isagalaev/highlight.js/issues/716#issuecomment-71303819
.


Is assertSessionHasErrors() useful at all?

Laravel Version: 5.3.6
PHP Version: 5.6.24
Database Driver & Version: not relevant

Description:
Typical update scenario with validation in place. One might want to test that certain errors messages are flashed to session.
Steps To Reproduce:
form with input field + Request with validation rule required
if posting fails Laravel makes redirect()... so session is not persisted.
Test might look like
<?php
class ValidationTest extends TestCase
{
    public function testExample()
    {
        $this->visit('/')->press('Submit');
        $this->assertSessionHasErrors('required');
    }
}

and test results in failure Session missing key: errors
All files to reproduce - gist
https://gist.github.com/Kyslik/f603f84011ce72701f0cb0833c10d59c

It works if you use the call method directly.
$this->call('POST', "/");

@spekkionu isn't this bug then?
Will check call() instead of press() and report back.

@Kyslik did you get the chance to get more details about the issue?

Hello @themsaid, well neither of the methods (call(),  press(), makeRequest()) seem to persist session through redirects (because of validation failed - see gist).
I mean I can just crawl page and use seeText()... but why is there assertSessionHasErrors() at all? Does not make any sense (for now).

@Kyslik it works with withoutMiddleware() usage. Seems like it caused by \Illuminate\Session\Middleware\StartSession::class middleware


docs: switch to Browser.cookies, document Browser.deleteCookie

What kind of change does this PR introduce?

docs bugfix
Did you add tests for your changes?
n/a
If relevant, did you update the documentation?
Yes
Summary

Followup to #13334

The context identifier is missing in the code examples
The Browser.deleteCookie method doesn't have a code example

Does this PR introduce a breaking change?

No
Other information
Trying to help out others upgrading away from the deprecated page.cookies and page.deleteCookies APIs:

https://github.com/puppeteer/puppeteer/pull/13316#issuecomment-2522457638

Glad to help, thanks for the review and merge!


docker image not working?

I generated a rule for some function in a binary using the IDA Pro plugin, but when I execute
yara test.rules binary

inside the docker container for the same binary, it doesn't match anything. I think the safe-similarity always returns -1 regardless of the binary. Is this an error code for something?
The rule in question:
import "safe"

rule SafeTest
{
	condition:
		safe.similarity("[-0.129195, 0.0943942, 0.165455, 0.163411, -0.123115, -0.13279, 0.130345, 0.0421074, 0.0340499, 0.12879, -0.0641257, 0.0949284, 0.17769, 0.193274, -0.00301803, 0.0236765, 0.115137, -0.0424091, -0.0970077, 0.132408, -0.050657, 0.00733503, -0.0234372, -0.0591152, -0.0630853, -0.202392, -0.004527, -0.0488241, -0.0683002, 0.112945, -0.0049429, -0.107713, -0.0353616, -0.0319929, 0.0293161, 0.0196645, 0.122369, 0.00963254, 0.0176607, 0.00227502, 0.121732, 0.00657981, 0.15255, 0.251593, -0.0429346, 0.0161985, -0.0234351, -0.0633113, -0.0396439, -0.00898246, -0.0313725, -0.00844495, 0.00469497, -0.0456963, 0.0765824, -0.140181, 0.115436, -0.0119807, -0.0332907, 0.0183194, 0.00056422, -0.132339, -0.0158411, -0.00459429, 0.101661, 0.124795, -0.0266255, 0.0325989, -0.10009, -0.101021, 0.0336481, -0.0905261, 0.0886329, -0.0250674, -0.0913075, 0.0635225, 0.493963, 0.0274645, 0.0916799, 0.0162946, 0.0331404, -0.0473453, -0.0183907, 0.00954704, 0.00690745, -0.0570361, 0.181244, -0.00375584, -0.0581731, 0.0849512, 0.0884923, 0.0321045, -0.0130037, -0.0375306, 0.0269669, -0.180753, 0.147754, -0.0192702, -0.0144993, 0.0708039]") > 0.5
}

I've just updated the docker image, can you retry?

It seems to work now, thank you!


chore(deps): bump versions

this PR was intended to fix #8 but after checking, I found that this crate is already on 2021.. so I decided to run a cargo update in order to contribute at least something :)

Codecov Report

Merging #9 (197cd63) into master (dbda1bb) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master       #9   +/-   ##
=======================================
  Coverage   67.20%   67.20%
=======================================
  Files          10       10
  Lines         494      494
=======================================
  Hits          332      332
  Misses        162      162

Flag
Coverage Δ

unit-tests
67.20% <ø> (ø)

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

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 dbda1bb...197cd63. Read the comment docs.


Fancy browser test runner

This doesn't load all the tests yet, right?

It does! (they don't all pass because a bunch depend on fs.readFile via loader.js)

Nice!


feat: new xrp plugin

Much more reliable channel operations and exposed balance
Much simpler uplink code
Fix #12
Fix #15
Fix #18
Fix #21
Fix #25
Fix #26

 Looks great!


I'm tempted to remove Value.flatten(), again.

Reasons:

I haven't seen a real-world use-case yet.
The result is untyped, casting may lead to runtime exceptions (which is not acceptable).
It is one of the most complex methods.
There is a workaround with flatMap(Funtion.identity()) that cascades one level.
There will be an additional workaround transform(Xxx::flatten) that will flatten a Traversable to another collection type.

See #723

@ggalmazor Do you need/use flatten() directly? Is it a viable option for you to use one of the alternatives mentioned above?

We don't really have more than one level depth monadic structures... therefore we don't need a cascading .flatten().
In our case, 100% of the times that we want to flatten a structure, we want to retain types by applying .flatMap(Function.identity()) because it's always a one level depth structure.
It would be great to replace the current (v2) implementation of .flatten() for an alias to .flatMap(Function.identity())as it would produce a more compact and easy to read code (as in v1).

Thx for the feedback, I will implement your idea to use flatten() as shortcut for flatMap(identity()).

Great to hear that, thx!

Some specs...
Flatten
interface FilterMonadic<T> {
    /**
     * Flattens this {@code Value} by one level.
     *

     * Example:
     *
     *
List(Some(1), Some(2), None).flatten() = List(1, 2)

     *
     * Caution: Effectively {@code flatMap(Function.identity())} is called. That requires this
     * elements to be of type {@code java.lang.Iterable}. More specifically this type {@code FilterMonadic<T>}
     * has to be of type {@code FilterMonadic<? extends java.lang.Iterable>} for some given {@code U}.
     * We (currently) can't express this constraint with Java's type system. If this type does not fulfill the
     * requirement at runtime, a {@code ClassCastException} is thrown.
     *

     * It is unsafe to use {@code flatten()}. Especially this compiles but throws at runtime:
     *
     *
// Compiles. Throws at runtime because elements are not Iterable!
     * List<String> list = List(1, 2, 3).flatten();

     *
     * Also beware of the following exceptional cases: {@link CharSeq#flatten()} and {@link Map#flatten()}.
     *
     * @param  the nested component type
     * @return A flattened version of this {@code Value}.
     * @throws ClassCastException if this elements are not of type {@code ? extends java.lang.Iterable<? extends T>}.
     */
     FilterMonadic flatten();
}

Here are some interesting corner-cases:
CharSeq (a String wrapper)
public final class CharSeq implements CharSequence, IndexedSeq<Character>, Serializable {
    /**
     * Elements of a {@code CharSeq} are flattened to identical characters.
     *

     * Caution: Behaves different than most other {@code Value.flatten()} implementations.
     *

     * Example:
     *
     *
// = IndexedSeq('a', 'b', 'c')
     * CharSeq.of("abc").flatten();

     *
     * @param  the component type of the result, needs to be {@code Character}
     * @return an indexed sequence of characters
     * @throws ClassCastException if {@code U} is not {@code Character}.
     */
    @SuppressWarnings("unchecked")
    @Override
    public  IndexedSeq flatten() {
        return (IndexedSeq) Vector.ofAll(this);
    }
}

Map (namely HashMap, TreeMap)
public interface Map<K, V> extends Traversable<Map.Entry<K, V>>, Function<K, V> {
    /**
     * Entries of a {@code Map} are flattened to the elements of their {@code Iterable} values.
     *

     * Caution: Behaves different than most other {@code Value.flatten()} implementations.
     *

     * Example:
     *
     *
// = Seq(1, 2)
     * HashMap.empty()
     *     .put(0, Option.of(1))
     *     .put(1, Option.of(2))
     *     .flatten();

     *
     * @param  the component type of the resulting sequence
     * @return an indexed sequence of elements of type U
     * @throws ClassCastException if the value of a map entry {@code (key, value)} is not {@code Iterable}.
     */
    @Override
     Seq flatten();
}

@ggalmazor It is unsafe but there is no other possibility to express it with Java's type system.
In particular this is now possible:
// = List(1, 2)
List<Integer> ints = List.of(new Some<>(1), new Some<>(2), None.instance());

But this also compiles and will throw at runtime:
// two errors: elements not iterable *and* wrong return type assumed
List<String> unsafe = List.of(1, 2, 3).flatten();

Question: Will you use that in production?
The question is not rhetoric. If you will use it will stay in Javaslang :-)

(Just writing this to reason about your quesion... My answer in next comment)
If we're talking about one-level depth, same container .flatten(): yes, we are writing something like this in prod:
// = List(1, 2, 3, 4, 5, 6)
List<Integer> flat = List.ofAll(List.ofAll(1, 2, 3), List.ofAll(4, 5, 6)).flatten()

(with a List<List<T>>)
We aren't using .flatten() with structures like the one in your last example:
// = List(1, 2)
List<Integer> ints = List.of(new Some<>(1), new Some<>(2), None.instance()).flatten()

(with a List<Option<T>>)
In this particular case, we are currenlty using filter & map:
List<Integer> ints = List.of(new Some<>(1), new Some<>(2), None.instance())
                         .filter(Option::isDefined)
                         .map(Option::get)

Now I'm realizing that we could use .flatten() for the two cases. The tradeoff is a possible runtime exception if we're not careful, but we already are risking that if we switch to .flatMap(Function.identity().

My answer is YES, we would use .flatten()a lot. The tradeoff is worth the value we are getting.
I'd focus now on producing the most clear error message with the best stacktrace we're able to for when it goes south.

@ggalmazor thx for the fast answer - I'm totally agreeing. Haven't thought of providing a better error message, great idea. Will do that!

:+1:


Add SyN registration examples

There is some interest in the community to add SyN registration examples to the ITK registration examples.
Cross-referencing ITK discourse post and ITK repository issue 1614.
May be this could also be added as an example to the ITK SW Guide by adding an example in the ITK codebase.

@zhang-qiang-github you are more than welcome to contribute with an example.
Community members will be happy to guide and help you through the process !


Import controller

Only the POM files needs review, the rest of the code is 1:1 with the existing code in Hosted repo. Should also let the PR build pass for this one, I think.

Ready for merge. Java build on Travis has passed, but C++ one is still running.


NetUtils' getAllIPs returns an empty array on the servers

Tested on the server as part of #2392 , I got an empty array. This might be due to Agora running in Docker though.
One solution would be to integrate https://github.com/Kripth/my-ip .
This is a blocker for the deployment of TestNet.

I've tested this on our test servers and it works, but on my computer (under WSL2) it returns an empty array.


Packpack stored size not update when spilt stack in backpack

Description
Reproduction
Let's say you put 30LV wires in backpack, split it in half. The stored size (backpack) would still be 30.
Screenshots

https://github.com/space-wizards/space-station-14/assets/74560659/5391c4f3-c8b7-4722-bccb-4084e1a80df4
Additional context
If you take anything out and put it back in, it's fixed.

grid inventory


Beta reviews

@fguillot
Today I have seen accidentally, that a new beta is released 6 days ago. Today the new stable version is out. There was no mail alert, that a new beta has been released, so maybe no reviews / tests have been done before the final release. Is it possible to send an email, when a new beta ist out?
On the kanboard.net website there have been nightly builds with vendor folder in the past. Is it possible to generate them automatically? It would be helpful to get nightly builds for the beta for quick testing.
Kind regards!

I don't want to spam people by sending too many emails. I should probably setup a separate mailing list for the beta announcements.

Why not use a more fixed schedule (beta release last monday in a month), see how gitlab do it. think it is a nice approach. Perfectly fit into Kanban - release finish features at a given date.

I merged master into the branch beta.
The nightly build is back: https://kanboard.net/downloads
Otherwise you can use the Docker image for testing.


Fails to set up sandbox if /media/$USER does not exist

Hi! On my GNOME Debian sid VM, /media/$USER does not exist yet for some reason. Presumably it would be created next time I plug in some removable storage device into that system, but whatever, so far it does not exist, which might be the case for various other kinds of new systems.
Starting Evince after having set up its sandbox with oz-setup install evince fails with:

Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 [evince] Starting oz-init for profile: evince
Oct 17 02:05:57 sid-desktop org.gnome.Nautilus[2706]: ok received
Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 [evince] bind mounting (as readonly) /bin -> /srv/oz/rootfs/bin
Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 [evince] bind mounting (as readonly) /lib -> /srv/oz/rootfs/lib
Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 [evince] bind mounting (as readonly) /lib64 -> /srv/oz/rootfs/lib64
Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 [evince] bind mounting (as readonly) /usr -> /srv/oz/rootfs/usr
Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 [evince] bind mounting (as readonly) /etc -> /srv/oz/rootfs/etc
Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 [evince] Failed to setup filesytem: failed to create empty directory '/media/toto': stat /media/toto: no such file or directory
Oct 17 02:05:57 sid-desktop oz-daemon[2633]: 2016/10/17 02:05:57 Child process pid=4125 exited from daemon with status 1

(my user is called "toto").
Then I've run install -o toto -g toto -m 0755 -d /media/toto, and could finally see oz running an app on a regular Debian system :)

Sadly things are more complicated than that. Debian uses xattrs on /media/* and not regular permissions. While it'll work if you create it as the user, your install will be non standard there after.
We've opted a while back that this was "not a bug", and fixed it at the distro level. I don't think we will revisit for now.
This is not properly related to #81.

Sadly things are more complicated than that. Debian uses xattrs on /media/* and not regular permissions. While it'll work if you create it as the user, your install will be non standard there after.

OK, thanks for the explanation.

We've opted a while back that this was "not a bug", and fixed it at the distro level.

OK, fair enough. This may be a blocker for integration into Debian and Tails though, so could you please point me to the code/configuration/whatever you use in SGOS to fix it?


intermittent corrupt output from FSTObjectOutput - seems related to use of SoftReference

I'm seeing very intermittent issues with FSTObjectOutput (when iterating over serializing 100's of objects).  I kept thinking: shouldn't it be completely deterministic?  In the course of trying to debug it, I stumbled upon the use of SoftReference in FSTConfiguration. So then it occurred to me, oh, I wonder if the intermittent nature stems from the behavior of the Garbage Collector?
So, I experimented with 2 things:

putting System.gc() in the loop.  this makes it a lot slower, but failures still occurred intermittently.  of course, this call isn't guaranteed to actually do anything.
removing the use of SoftReference in FSTConfiguration and just holding references to the Objects directly.  In this configuration, everything appears to be stable! Promising!

I noticed that you had this comment:
/**
* reuse heavy weight objects. If a FSTStream is closed, objects are returned and can be reused by new stream instances.
* the objects are held in soft references, so there should be no memory issues. FIXME: point of contention !
* @param cached
*/
Which suggests (perhaps) some uncertainty about the use of SoftReference?
I don't know your code well enough to decide whether it's safe for me to use my modification (this is a utility that runs and exit, so I'm not concerned about leaking memory, but I am very concerned about reliability),
Have you seen problems with this?  My test case can't be shared directly, but I've spent enough time on this problem, that I could work towards developing a standalone example.  But before I spent more time on it, I thought it was worth asking you about it.
Thanks,
Brad

Thanks for the report.
No, the current version is in production in several large production systems. The reuse mostly occurs if one uses JDK-alike API, however I tend to use FST specific API most of the time (like FSTConfiguration.asObject etc).
Also things like this might happen due to incorrect multithreading/concurrency. You cannot write to an FSTObjectOutput from different threads.
Do you have a reproducing test case ?

Our program runs on 1 thread only.
I will try and develop a standalone test case that I can share with you without sending you our entire project.

I have developed a stand-alone reproducible case.  :-)
I'm not sure about my theory regarding SoftReference, but I know for sure that this program behaves unexpectedly.  It's a stress-test of serializing/deserializing what I think should be the same object 100 times.
For me, the deserializer will fail 0-10 times per run.  Usually around 3 or 4 times. I'm surprised that the program isn't completely deterministic.  Working theory is that GC is the non-deterministic element.
To try it:
unzip
cd to that directory
gradle build
java -cp "build/libs/*" com.fingerprintplay.Main
and you should see a few failures. If you don't, run it a few more times. It's very intermittent.
Fwiw, I'm running on OSX 10.11
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
I'm hopeful that you are able to reproduce and take a look.
Apologies in advance for any wrong theories here... I really appreciate your help.
Your library is awesome!  We are using it to really speed up loading JavaScripts in Rhino on Android.  Our preprocessor fails sometimes, and this investigation
reprocase.zip
is to determine why.
Thank you,
Brad

appreciate your help very much. Will have a look as soon as possible ..

thank you!

curious - were you able to unzip and run the example?  did it reproduce the intermittent failure for you?

haven't had time for open source work, stay tuned :)

I've been trying to debug this, but haven't been successful.  Would love to chat about debugging strategies, if you were free for a chat session somewhere. Thanks!

hm .. maybe just add a flag disabling softreference caching at all using a publis static. The current implementation afaik contains a fallback doing an alloc, so only adding to cache must be ommited.

Still working to debug the issue I'm seeing with serialization. I no longer think it is related to SoftReference. My latest theory is that there's a bug in the resize method of FSTIdentity2IdMap.
After hours of analysis of my bigger sample, here's a program that, for me, reliably reproduces a failure, just by using FSTIdentity2IdMap in isolation.  Note that if I make the initial size big enough that it's never resized, then the failure doesn't happen, thus my suspicion of the resize method.
I would be very grateful if you could take a look / help me understand/fix/update FSTIdentity2IdMap.
Thanks!
public static void main(String[] args) throws Exception
    {
        int COUNT = 8192;

        // if initial size is COUNT, then won't fail - failure seems to be due to FSTIdentity2IdMap resize - the more
        // resizing, the greater percent chance of failure.
        // usually fails after 2280 - 2290 iterations, at least for me.

        FSTIdentity2IdMap map = new FSTIdentity2IdMap(2);
        ArrayList<String> keys = new ArrayList<>();
        HashMap<String, Integer> values = new HashMap<>();

        for (int j=0; j<COUNT; j++) {
            if (j > 2000 && (j % 100 >= 20)) { // create 2000 strings, then reuse some of them 20% of the time
                int index = j % 2000;
                String key = keys.get(index);
                int value = map.putOrGet(key, j);
                int compare = values.get(key);
                if (value != compare) {
                    System.err.println("error " + j);
                    return;
                } else {
                    System.err.println("ok " + j);
                }
            } else {
                String key = UUID.randomUUID().toString();
                keys.add(key);
                map.putOrGet(key, j);
                int value = map.get(key);
                values.put(key, value);
            }
        }
    }

More info:
The above goes away with a modification to the "rePut" method, so that it also works with a max-depth object that is using the linear list:
```

private void rePut(FSTIdentity2IdMap kfstObject2IntMap) {
    // ADD THIS AT THE TOP OF METHOD:
    if ( linearScanList != null ) {
        for (int i = 0; i < linearScanList.size(); i++) {
            Object key = linearScanList.get(i);
            int value = linearScanVals.get(i);
            kfstObject2IntMap.put(key, value);
        }
        return;
    }

I am now investigating why I end up with a max depth FSTIdentity2IdMap faster than I might expect.

Ok, I figured out why the max depth is intermittently reached more rapidly than intended.
putOrGetHash uses calcIndexFromHash to get an index for the key array.  if the slot is already used, it tries the two, but if all 3 are used, it gives up and calls putOrGetNext, which increases the depth.
If in putOrGetNext, I track to see what percentage of the mKey array actually got used, I can see that it varies a lot... sometimes as low as 14%, quite often as low as 33%... so most of the allocated array is wasted and so it gets to the max-depth faster (depending on how unlucky the hash codes get) and then can lead to the resize bug where data in the linear lists isn't copied forward.
    final int putOrGetNext(final int hash, final Object key, final int value, int depth) {
        if (next == null) { // new
            int newSiz = mKeys.length / 10;

            // ADD THIS TO SEE: see how many of the key slots are used
            int usedSlots = 0;
            for (int i=0; i<mKeys.length; i++) {
                if (mKeys[i] != null) {
                    usedSlots++;
                }
            }
            float percentUsed = (float)usedSlots/(float)mKeys.length;

Is HashMap really that much slower?  Here's a slide in replacement class FSTIdentity2IdMapSimple

public class FSTIdentity2IdMapSimple {

    public HashMap<Object, Integer> mData = new HashMap<>();

    public FSTIdentity2IdMapSimple(int initialSize) {
    }

    public int size() {
        return mData.size();
    }

    public int keysLength() {
        return mData.size();
    }  // instead of .mKeys.length

    public void clear() {
        mData.clear();
    }

    final public int putOrGet(Object key, int value)
    {
        if (mData.containsKey(key)) {
            return mData.get(key);
        } else {
            mData.put(key, value);
            return Integer.MIN_VALUE;
        }
    }

    final public void put(Object key, int value)
    {
        mData.put(key, value);
    }

    final public int get(final Object key)
    {
        if (mData.containsKey(key)) {
            return mData.get(key);
        } else {
            return Integer.MIN_VALUE;
        }
    }
}

So, in short, I believe FSTIdentity2IdMap has a bug and an unintended behavior.
Your library is really great / fast, has been huge plus for our project.  I really appreciate your work on it, and I'm hopeful my effort here leads to improvements.
Please review and let me know if you have some "official fixes".
Thanks!

Thanks for your valuable help. Benchmarks have shown (some time ago), that
HashMap is significant slower because of its intermediate bucket objects,
it requires more object allocation which has subtle effects in real world
applications because of higher rate of cache misses (both during put and
lookup). Its hard to benchmark, ussually a small benchmark does not display
its weakness correctly (as everything stays in cpu cache then).
In addition HashMap cannot be reused efficiently as all buckets are thrown
away on clear(), whereas open hashmaps can keep their preallocated arrays
(so the stay in the cpu cache).
Further more: the use and allocation of Integer Objects instead of native
int's adds even more allocation and memory usage to HashMap.
Regarding memory waste: as an object requires >16 bytes of object header, a
single bucket object + link + "next" link is ~24 bytes which means an open
array based hashmap is on par when using only each 6th slot of an array.
Given that Integer Objects > 20000 need to be allocated also you can add
another 20 bytes for each entry which increases the cost of a single
hashmap object to ~44 bytes which is equal to 11 (!) array slots, so even a
fill factor of <10 percent is more efficient in case of array based
hashmaps.
As each dereferencing has a risk of triggering a cache miss, a lookup to a
"cold" (not in cpu cache) HashMap<Object,Integer> triggers significant more
cache misses than a lookup to an array based hashmap using native int's
(Integer objects also require a dereferenceing just to read the int value).
Summary: The design of j.u.HashMap is one of the main causes for GC
pressure + memory consumption + performance degradation of Java data
structures at scale :).
Anyway I'll try to fix and release your observation this weekend if
possible.
2016-02-12 8:33 GMT+01:00 bradedelman<EMAIL_ADDRESS>
So, in short, I believe FSTIdentity2IdMap has a bug and an unintended
behavior.
Your library is really great / fast, has been huge plus for our project. I
really appreciate your work on it, and I'm hopeful my effort here leads to
improvements.
Please review and let me know if you have some "official fixes".
Thanks!
—
Reply to this email directly or view it on GitHub
https://github.com/RuedigerMoeller/fast-serialization/issues/106#issuecomment-183215659
.

Great find+fix !
The bug depends on the distribution of object id's.
Still wondering why the map degrades to linear lookup so fast ..

checked length of lists and none of them exceeds 10 elements, so it seems hashkeys still distribute well.
will release this with 2.44
Many thanks for your patient investigation and the solution. Basically the linlist was just a quick fix some years ago and I obviously forgot to adapt the resize/reput for it :).
Still strange it has not hit other use cases as fst is used in some pretty large production production systems ..

unfortunately several testcases (e.g. basicfsttest) fail with your changes, reason is for multidimensional arrays the original position determination was correct, changed that so both cases work now. will release with 2.45´

Sorry about that.  Thanks for the fix to the fix.  Are there instructions on how to run the tests? Sorry, I didn't pick up on that.


feat: better show-slides mode

As mentioned in #7 and #8, we plan to implement a more powerful show-slides mode, which can be broadly divided into the following three parts:

Use the slide-level parameter in slides to represent the structural depth. For example, the default setting for the university theme is slide-level: 1, where heading 1 and 2 represent section and title, respectively. If we use #show: slides.with(slide-level: 2), heading 1, 2, and 3 will represent section, subsection, and title, respectively.
Simplifying the implementation of the slides mode with themes, eliminating the need to register the slide-in-slides method. Instead, we adopt the "convention over configuration" philosophy to simplify the implementation. Specifically, in the slides mode, the default call is made to the self.methods.slide method. Additionally, if we have a self.methods.touying-new-section-slide method, = Section will be automatically translated into self.methods.touying-new-section-slide[Section].
Through syntax like #let (slide, focus-slide) = utils.slides(s), we can use syntax like #slide[] and #focus-slide[] in the show-slides mode, providing more powerful functionality and clearer structure. In this syntax, section, subsection, and title will be automatically passed into #slide[]. (Because "slide" is registered in self.slides = ("slide",), it can be automatically passed in)

Here is a specific example:
#import "../lib.typ": *

#let s = themes.university.register(s)
#let s = (s.methods.info)(
  self: s,
  title: [Title],
  subtitle: [Subtitle],
  author: [Authors],
  date: datetime.today(),
  institution: [Institution],
)
#let (init, slides) = utils.methods(s)
#show: init

#let (slide, focus-slide) = utils.slides(s)
#show: slides.with(slide-level: 2)

= Section

== Subsection

=== Title

#slide[
  AAA
]

#slide[
  BBB
]

#focus-slide[
  CCC
]

cc @fbob and @HPDell

That is exactly what I want. Thank you!
BTW, how can I map == headings to slide titles? In most cases, I won't need subsections.

Do you think there should be a way to do this? is it not convenient to use ===?

A slide level in the header's hierarchy could be defined to specify that headings with the specified level create slides.
See for example  Pandoc.

headings above this level in the hierarchy are used to divide the presentation into sections, subsection and so on;
headings below this level could create subheadings inside a slide.

Regards,

Another quick question: shall I use the callback-style functions to use the animations like cover and uncover?

Yes, while maybe I could provide a non-callback function of only and uncover (with some limitations), I think there are two styles that make touying more difficult to understand.

I've added the slide-level parameter.  We use the slide-level parameter in slides to represent the structural depth. For example, the default setting for the university theme is slide-level: 1, where heading 1 and 2 represent section and title, respectively. If we use #show: slides.with(slide-level: 2), heading 1, 2, and 3 will represent section, subsection, and title, respectively.

I've added the slide-level parameter. We use the slide-level parameter in slides to represent the structural depth. For example, the default setting for the university theme is slide-level: 1, where heading 1 and 2 represent section and title, respectively. If we use #show: slides.with(slide-level: 2), heading 1, 2, and 3 will represent section, subsection, and title, respectively.

So the number starts from 0 😄

Touying 0.3.1 has been released :-)


npm install fails ENOENT: no such file or directory (.staging directory)

Required Information
Type: Bug
Enter Task Name: npmV1
Environment

Server - Azure Pipelines

Agent - Hosted: Azure Pipeline / Hosted ubuntu 18.04

Issue Description
npm install fails on every build
Error logs
tasklog.txt

@christerengman Aren't npm ci and npm prune doing completely different things? npm ci installs versioned packages in package-lock.json to node_modules while npm prune removes packages from node_modules?

any fix for this, we are also experiencing the problem?

Experiencing the same issue. Everytime I try to use a Microsoft product....grr....

same issue here.....every once in a while it fails

same issue using this sample azure-pipelines.yml
it fails in the npm install line. it says, ##[error]Error: ENOENT: no such file or directory, stat '/home/vsts/work/1/s/WebUi/angular
variables:
  buildConfiguration: 'Release'

steps:

- task: Npm@1
  displayName: 'npm install'
  inputs:
    command: install
    workingDir: WebUi/angular

- task: Npm@1
  displayName: 'Build Angular'
  inputs:
    command: custom
    customCommand: run build -- --prod
    workingDir: WebUi/angular

- task: PublishPipelineArtifact@0
  inputs:
    artifactName: 'angular'
    targetPath: 'WebUi/angular/dist'

I'm having same issue different error (see below). It works if I delete package-lock.json but as of yesterday my builds started building different so I decided to include package-lock.json again to see if it would resolve it but this came up.
error code EINTEGRITY
error sha1-zsDyXALIIS7WvG3n7w54QAmEhs0= integrity checksum failed when using sha1: wanted sha1-zsDyXALIIS7WvG3n7w54QAmEhs0= but got sha512-ZUEcjQIMvD1I/nXBDWZY5szciMk83aWvDtyUonD8QMEuvPAiX1ViZH9IgrSJAtOlr3bdm3O6wlWKHUHSBS7F+Q== sha1-Cp0zDcOS+rDj13WkI1i7zUOrpNk=

Hi guys, I find a solution, in you pipeline you have to add the task 'Node.js tool installer' after CocoaPods install task and the build we'll be successful.

Same problem today. I had no problem running my pipeline on May 4, 2020. Interestingly, I specify Azure Pipelines Image ubuntu-18.04 but the pipeline actually uses ubuntu-16.04. I'll try again later.
Phase 1
Pool: Azure Pipelines
Image: ubuntu-16.04
Agent: Hosted Agent

The error in task Build an image
##[error]Unhandled: Failed find: ENOENT: no such file or directory, stat '/home/vsts/work/1/s/docroot/sites/default/files'

Hi Team, We are facing this randomly on our VSTS hosted agent today.  This is the final error message we get
19681 error code ENOENT
19682 error syscall spawn git
19683 error path git
19684 error errno ENOENT
19685 error enoent Error while executing:
19685 error enoent undefined ls-remote -h -t<EMAIL_ADDRESS>19685 error enoent
19685 error enoent
19685 error enoent spawn git ENOENT
19686 error enoent This is related to npm not being able to find a file.
19687 verbose exit [ 1, true ]

##[debug]Agent.BuildDirectory=C:\agent\_work\2
##[debug]rm -rf C:\agent\_work\2\npm
##[debug]removing directory
##[debug]task result: Failed
##[error]Error: Npm failed with return code: 1

HOLY SHIT, After 2 hours of reading various threads back and forth this answer fixed my issue.

@gethari  did you only add .npmignore file only ? because that doesn't solve my issue. The error is same.

@gethari did you only add .npmignore file only ? because that doesn't solve my issue. The error is same.

@himanshush13 It did resolve the issue for time being for one or two days. Today we are facing this issue again ! 😟

UPDATE
I don't know if this is the right solution. I downgraded Angular CLI to 8.3.23 and it did resolved my issue, and also we were using a build step called NODE we removed it and installed node directly on the server

Hi,
Are you still experiencing this issue?
Thanks

@omokoh  Sure. i am currently experiencing same issue from my end.

Updating to npm 7 solved the issue for me

Updating to npm 7 solved the issue for me

Same for me as well.

Experiencing this issue as well. @ssensegar or @PaulVrugt what exact version of npm 7? And were you installing that in your dev environment or somehow forcing the pipeline agent to use npm 7?

@alexweininger installing npm7 locally doesn't make sense since the error occurs in the pipeline. You can install npm7 during the pipeline process by using the following task before any npm command:

  - task: Npm@1
    displayName: 'Install npm 7'
    inputs:
      command: 'custom'
      workingDir: $(Build.Repository.LocalPath)
      verbose: false
      customCommand: 'i -g npm@next-7'

@PaulVrugt Thanks, I just tried adding that to my .yml and that task fails with the following error:
941 verbose stack Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/abbrev'
942 verbose cwd /home/vsts/work/1/s
943 verbose Linux 5.4.0-1032-azure
944 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "i" "-g" "npm@next-7"
945 verbose node v14.15.1
946 verbose npm  v6.14.9
947 error code EACCES
948 error syscall access
949 error path /usr/local/lib/node_modules/npm/node_modules/abbrev
950 error errno -13
951 error Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/abbrev'
951 error  [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/abbrev'] {
951 error   errno: -13,
951 error   code: 'EACCES',
951 error   syscall: 'access',
951 error   path: '/usr/local/lib/node_modules/npm/node_modules/abbrev'
951 error }

I'm not sure what's happening here.

I'm facing the same issue. The problem seems to happen randomly.
I've tried adding a step to clear npm cache forcefully, but it didn't help.
Deleting package.lock.json does help, but I don't think it's an acceptable solution.

I'm facing the same issue. The problem seems to happen randomly.
I've tried adding a step to clear npm cache forcefully, but it didn't help.
Deleting package.lock.json does help, but I don't think it's an acceptable solution.

Have you found out how to fix it? I have the same issue as well.

If you notice that along with the problem that you get this error: npm WARN read-shrinkwrap This version of npm is compatible with lockfileVersion@1, but package-lock.json was generated for lockfileVersion@2. I'll try to do my best with it! Then this link may help you.https://stackoverflow.com/questions/64813775/is-there-any-way-to-fix-package-lock-json-lockfileversion-so-npm-uses-a-specific

After troubleshooting with @stephenmichaelf we fixed our problem using npm prune --production instead of npm ci --production. Reason probably being that ci is asynchronous while prune is synchronous. Don't know if it helps you @flopes89 but might be valuable information for you and anyone else. :)
Thank you @stephenmichaelf !

Thanks for your solution npm prune --production is work for me too.
We use npm prune after

npm install
run test
publish test case
npm prune --production, to left only production module


Test Bug 110

Summary
Short summary of what is going on or to provide context.
Steps To Reproduce:

This is step 1.
This is step 2. All steps should start with '1.'

Expected result
Describe what should have happened.
Actual result
Describe what actually happened instead.
Additional information
Feel free to attach a screenshot.
Salesforce Extension Version in VS Code: 59.15.1
Salesforce CLI Version:
OS and version: windows 11
VS Code version: 1.83.4
Most recent version of the extensions where this was working:

Thank you for filing this issue.  We appreciate your feedback and will review the issue as soon as possible. Remember, however, that GitHub isn't a mechanism for receiving support under any agreement or SLA. If you require immediate assistance, contact Salesforce Customer Support.

Hello @daphne-sfdc :wave: None of the versions of the Salesforce Extension Pack you shared match the latest release.
Shared: 59.15.1
Latest: 60.13.0
Update to the latest version of the Salesforce Extension Pack in the VSCode Extensions view and confirm that you're still seeing your issue.
After updating, share your current extensions version.

Hello @daphne-sfdc :wave: It looks like you didn't provide all the required basic info in your issue.
If you haven't already, please provide the following info:
Salesforce Extension Version in VS Code:
Salesforce CLI Version:
OS and version:
VS Code version:
Most recent version of the extensions where this was working:
A few more things to check:

Make sure you've provided detailed steps to reproduce your issue, as well as all error messages that you see.

A repository that clearly demonstrates the bug is ideal.
Error messages can be found in the Problems Tab, Output Tab, and from running Developer: Toggle Developer Tools in the command palette.

Make sure you've installed the latest version of the Salesforce Extension Pack for VSCode. (docs)
Search GitHub for existing related issues.

Thank you!


Support the toolchain pattern, starting with latest toolchain

fuelup is largely inspired by rustup in terms of how it should distribute packages in the Fuel toolchain in future, and this inspiration extends to the toolchain concept.
Following a discussion here, a good first step towards building the foundation of toolchain management would be to support the latest toolchain (which is basically what we have now!)
This would mean:

We have some kind of config file within ~/.fuelup/bin, this could be in the form of a settings.toml similar to rustup, where configs (eg. the default toolchain) are set,
We download bins to /toolchains/latest/bin instead, so that next time we can download other versions to, for example, /toolchains/stable/bin, or we can even support custom toolchains i.e. /toolchains/my-toolchain/bin

In making this work we need to support the proxy pattern - it means we will run forc and fuel-core through fuelup, pass necessary args through fuelup to the respectively tools. This is how rustup is aware of which toolchain to use for which tool.


Color scheme isn't as pretty in v0.0.21

The Color scheme is off with v0.0.21
Expected Behavior

Current Behavior

Context
Upgraded to this repo to solve the auto-completion bug.

Operating System: Oracle Linux Server release 8.6
kubectl version: v1.23.7+1.el8
kubecolor version: 0.0.21

Hi,
In mac happen the same:
OS: macOS Monterey 12.6
kubectl version: v1.25.0
kubecolor version: 0.0.21

I also have this issue. I understand some colours were changed to white to enhance readability from this PR https://github.com/hidetatz/kubecolor/pull/40
but in the current version I have inconsistent usage of colours when running kubecolor describe pod <pod-name>
In the meantime I'm using jrpedrianes's fork which keeps all the original colours from v0.20 but fixes the autocomplete issue for me.
https://github.com/jrpedrianes/kubecolor/releases/tag/v0.0.21

I hear the concerns. I was mixed about adding this color change, but in the end I find it readable too...
I will look to either change the colors back to normal add a flag. colors scheme would be like the original kubecolor and a flag to enable colors for disabled people.
WDYT ?

I still feel the new coloring scheme is not that bad... it's really easy to spot good/bad or new/old stuff...

To be honest I prefer the enhanced readability colour scheme, it just took some getting used to.

we could also color the RESTARTS in yellow/red after some threshold...

Thank you @prune998 for all your efforts.
Would you consider making all colors configurable (e.g. via a dot-file or environment variable), and let each user decide the color scheme that suits them.

Hi @hussam-qasem ,
so far, the way the code is build make it really difficult to change each component's color. It would be a really big effort to change this. I'll see what I can do, and i'm always opened to review PRs too if someone want to tackle this :)

One thing that I notice is that the output is not the same when we are using --all-namespaces option.

For example, in the first picture the pod name has a white colour font, but in the second one is blue, the font colour for READY column change between images... Is this the expected behaviour?
Environment
SO: macOS
kubectl: v1.22.15
kubecolor: 0.0.21

I really miss the old Color Schema. Any chance you can bing it back, or make it an flag as @prune998 suggestion above.

One thing that I notice is that the output is not the same when we are using --all-namespaces option.

For example, in the first picture the pod name has a white colour font, but in the second one is blue, the font colour for READY column change between images... Is this the expected behaviour?
Environment SO: macOS kubectl: v1.22.15 kubecolor: 0.0.21

That is expected. Kubecolor is doing alternating coloring per column. When adding the --all-namespaces/-A, then it's adding another column at the far left, leading to the colors being shifted.
We can look into adding a special case for it, so we reduce the color mismatch.

Issue https://github.com/kubecolor/kubecolor/issues/9 was created to track the color schema changes, so I'm going to close this issue.
Until we have that fully configurable, there's no point of discussing of a color change in an issue. It's down to each user preference, and the decision was made to go with a color schema that is compatible with color-blind (or color impaired) people.
I'll put some efforts to get the colors configurables ASAP. Thanks for your understanding.


builder prints out a weird log message just before launching an app

The final logs of a git push look like this:
[2015-12-15 23:54:55 UTC]     0B push/
-----> Launching...
       done, jiggly-pendulum:v3 deployed to Deis

       http://jiggly-pendulum.localhost

       To learn more, use `deis help` or visit http://deis.io

To ssh://git@<IP_ADDRESS>:2222/jiggly-pendulum.git
 * [new branch]      master -> master

The log [2015-12-15 23:54:55 UTC]     0B push/ is a little bit weird. It would be nice to show something more informative there.

closing, as this no longer is output


[Question] How to determine which way the normal of the discontinuity curve points to?

There are two possible directions opposite to each other, and the choice affects the sign of $\Delta G$ in the multi-directional form of the boundary integral.

Vector3fC   e       = cross(bss.edge, _dir);

Vector3fC   proj    = normalize(cross(e, _its2.n));

Vector3fC n = normalize(cross(_its2.n, proj));
value0 *= sign(dot(e, bss.edge2))*sign(dot(e, n));

$x_{0}^{D}$ and $x_{0}^{S}$ are reversed in the code. But following the convention of the picture, I believe e is the normal of the orange plane, bss.edge the edge direction, _dir $\omega^{B}$, proj the tangent of the discontinuity curve at $x_{0}^{D}$, _its2.n the surface normal at $x_{0}^{D}$, n the normal of the discontinuity curve $\Delta\mathcal{M}(\pi)$, value0 $\Delta G$.
It seems that it reduces to how you choose the normal direction e of the orange plane. Why did you choose to orient the orange plane by cross(bss.edge, _dir) but not cross(_dir, bss.edge)? And why the tangent vector proj of the discontinuity curve goes in the direction cross(e, _its2.n) but not the opposite? Finally, why the curve normal n to point in the direction of cross(_its2.n, proj) but not the opposite?

Is it because you guys follow an orientation such that for a point on a curve in a plane, the tangent, curve normal, and plane normal form a right-handed coordinate system?

Boundary normal direction of $x_0^D$ is same as geometry-term $G^{+}$.
In eq[40], $\Delta G = G^{-} - G^{+}$
When your normal direction is right, $G^{+}$ equals 0 and $G^{}$ equals G computed normally between $x_0^D$ and $x_0^S$;
and when your normal direction is left, $G^{+}$ equals G computed normally between $x_0^D$ and $x_0^S$ and $G^{-}$ equals 0.


Feature/gh actions

add GitHub actions

ci.yaml: Include code quality checks, setup and unit tests jobs
cd.yaml: include build tasks and distributions to PyPi and GitHub releases on tags. If PR or push to main, publish to TestPyPI
ci-docs.yaml: run jobs if files in 'docs/' dir are changed. Just build docs which usually silent fail, so not sure whether this job is enough of a test.

Changes to other parts of the code made for:

apply code inspection for isort, black and flake8.
update tests.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: colonesej:x: corentincartonYou have signed the CLA already but the status is still pending? Let us recheck it.


Tooltip animation can't be disabled

Expected behavior
When hovering over the chart, the tooltip should show.
Drawn metadata should stay, the animation of the tooltip shouldn't be there.
Current behavior
I draw some metadata in the table using the following:
animation: {
  onComplete: ChartHelper.distributionChartDrawMetadata()
},

The metadata disappears while the tooltip is fading in/out.
I can disable the animation of the tooltip using:
animation: false

But that also removes the metadata drawing.
Reproducible sample

Optional extra steps/info to reproduce
No response
Possible solution
No response
Context
No response
chart.js version
v3.6.0
Browser name and version
No response
Link to your project
No response

This is working as designed, when you disable the animation there won't be a onAnimationComplete since there is no animation to begin with.
If you want to draw/show custom data on the canvas you can use the plugin system to draw it on the canvas:
https://www.chartjs.org/docs/master/developers/plugins.html

Thanks.
Is there any way to disable the animation (or make animationDuration 0) of tooltips, so the metadata isn't gone for 400ms at a time?
I tried the following, but doesn't seem to do anything:
hover: {
  animationDuration: 0
},

I think a better way to achieve this would be to use a plugin that hooks into the afterDraw call. That way it will be drawn every time the chart draws. https://www.chartjs.org/docs/latest/developers/plugins.html#rendering


Parsing error with cmdlets script

This files contains syntax error :
Invoke-ScriptAnalyzer : Parse error in file .\Cmdlets\New-Pptx-Template.ps1: Missing expression after ',' at line 51 column 22.
Invoke-ScriptAnalyzer : Parse error in file .\Cmdlets\New-Docx-Template.ps1: Missing expression after ',' at line 53 column 22.

This files return Warning for the rule PSPossibleIncorrectComparisonWithNull :
RuleName   : PSPossibleIncorrectComparisonWithNull
Severity   : Warning
Line       : 94
Column     : 21
Message    : $null should be on the left side of equality comparisons.
ScriptName : New-Pptx-Template.ps1

RuleName   : PSPossibleIncorrectComparisonWithNull
Severity   : Warning
Line       : 130
Column     : 29
Message    : $null should be on the left side of equality comparisons.
ScriptName : New-Pptx-Template.ps1

RuleName   : PSPossibleIncorrectComparisonWithNull
Severity   : Warning
Line       : 210
Column     : 21
Message    : $null should be on the left side of equality comparisons.
ScriptName : New-Pptx.ps1

RuleName   : PSPossibleIncorrectComparisonWithNull
Severity   : Warning
Line       : 246
Column     : 29
Message    : $null should be on the left side of equality comparisons.
ScriptName : New-Pptx.ps1

RuleName   : PSPossibleIncorrectComparisonWithNull
Severity   : Warning
Line       : 116
Column     : 21
Message    : $null should be on the left side of equality comparisons.
ScriptName : Out-Xlsx.ps1

RuleName   : PSPossibleIncorrectComparisonWithNull
Severity   : Warning
Line       : 148
Column     : 13
Message    : $null should be on the left side of equality comparisons.
ScriptName : Out-Xlsx.ps1

Is this code correct ?

Closing all issues as this repo is being archived and will no longer be maintained by Microsoft. The project is licensed for continued use and development by forking to your own repo.


Bug fix for policy deletion: read wrong column name

Coverage decreased (-0.02%) to 21.632% when pulling 2d91b8c3fdb44afac139299bc61458b9cdc92ac7 on ywk253100:policy_deletion into 0da29e5305b75f43a39912a0ebcf6c00c04e1146 on vmware:dev.


Jitsi jitsi-2.10.5550-x64 hangs on splashscreen during startup

Hi,
Today we upgraded our Jitsi client from jitsi-2.8.5426-x64 to jitsi-2.10.5550-x64 on Windows Server 2012R2.
When you start Jitsi it hangs on NimbuzzAvatars" on the splashscreen ".

Deleting %appdata%\Jitsi doesn't help
Deleting %localappdata%\Jitsi doesn't help
Kr,
Joeri

Can you please try to capture some console output with this command? It should create a jitsi.log textfile on your desktop.
cd "%ProgramFiles%\Jitsi"
jre\bin\java -classpath lib\felix.jar;sc-bundles\sc-launcher.jar;sc-bundles\dnsjava.jar;sc-bundles\util.jar;lib -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties -Djava.library.path=native -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=Jitsi net.java.sip.communicator.launcher.SIPCommunicator > "%userprofile%\desktop\jitsi.log" 2>&1

Please see attached file.
jitsi.zip

Unfortunately, I'm not able to reproduce this.
@joerifeyen Can you please check if the file "C:\Program Files\Jitsi\sc-bundles\jna.jar" is present and paste a list of its contents? If you don't have e.g. 7zip installed, you can copy it to the desktop and rename it to jna.zip to look inside.
@EUFC19 could you please also run the command from my second comment?

The jna.jar is present in the "C:\Program Files\Jitsi\sc-bundles\jna.jar". The contents is: folder com and folder META-INF
jna.zip

Hi,
I got the same issue on ubuntu Xenial.
Cleaning ~/.jitsi doesn't solve it.
It hangs on "NimbuzzAvatars" on the splashscreen.
Best Regards,

Exactly the same issue with Jitsi 2.10.5550-x64 on Windows Server 2012.
I got the same logs as @joerifeyen and get jan.jar also in my %Program Files%\Jitsi\sc-bundles.
I try to delete %AppData%\Jitsi and others. Reinstall after, no changes.

Can you guys please check if pinning an application to the taskbar OR the latest nightly fixes this? The bug might have been caused by the issue fixed in #357.

Tested with Jitsi-msi-2.11.5577 also on x86 and x64, but nothing change.
I've try to pin application to taskbar, delete again %AppData% directories, still the same errors.

Can you please try build 5580 (or newer) and lets us know?

still the same errors on build 5580 :(

Is anyone here able to let me connect remotely to his machine?

wow, sorry!
I replaced the library and jitsi was launched
Thank you!

@imho9 What exactly did you replace?

Only felix.jar

I confim that 5580x64 is working for me too, on Windows Server 2012 R2.
Thanks @ibauersachs

@imho9 Build 5580 has the updated felix.jar. Are you sure you tested with 5580 before you manually replaced a file? This would indicate a problem with updating the installed files during installs (which I doubt is an issue).

@ibauersachs it's my mistake. build 5580 worked too. Sorry :)

Hi,
same problem on xubuntu 18.04.
Should I open a new issue?
$ dpkg -l | grep jitsi
ii  jitsi                                 2.10.5550-1                                 amd64        VoIP and Instant Messaging client
ii  jitsi-archive-keyring                 1.0.1                                       all          The public key for the Jitsi packages repository

attached log generated with
jitsi >> ~/tmp/jitsi.log 2>&1

jitsi.log.gz
ps in memory
sylvain  11055  5.1  0.9 9794184 150052 ?      Sl   07:45   1:56  |   \_ /usr/bin/java -classpath /usr/share/jitsi/lib/felix.jar:/usr/share/jitsi/sc-bundles/dnsjava.jar:/usr/share/jitsi/sc-bundles/sc-launcher.jar:/usr/share/jitsi/sc-bundles/util.jar:/usr/share/jitsi/lib -Djna.library.path=/usr/share/jitsi/lib/native -Dfelix.config.properties=file:/usr/share/jitsi/lib/felix.client.run.properties -Djava.util.logging.config.file=/usr/share/jitsi/lib/logging.properties -splash:splash.gif -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=.jitsi net.java.sip.communicator.launcher.SIPCommunicator

log install via apt + jitsi repos https://jitsi.org/Main/DebianRepository
Start-Date: 2018-10-12  07:42:30
Commandline: /usr/bin/apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install jitsi
Requested-By: sylvain (1000)
Install: ca-certificates-java:amd64 (20180516ubuntu1~18.04.1, automatic), default-jre-headless:amd64 (2:1.10-63ubuntu1~02, automatic), default-jre:amd64 (2:1.10-63ubuntu1~02, automatic), lib
atk-wrapper-java:amd64 (0.33.3-20ubuntu0.1, automatic), openjdk-11-jre-headless:amd64 (10.0.2+13-1ubuntu<IP_ADDRESS>, automatic), libatk-wrapper-java-jni:amd64 (0.33.3-20ubuntu0.1, automatic),
libgif7:amd64 (5.1.4-2, automatic), openjdk-11-jre:amd64 (10.0.2+13-1ubuntu<IP_ADDRESS>, automatic), fonts-dejavu-extra:amd64 (2.37-1, automatic), jitsi:amd64 (2.10.5550-1), jitsi-archive-keyri
ng:amd64 (1.0.1, automatic), java-common:amd64 (0.63ubuntu1~02, automatic)
End-Date: 2018-10-12  07:42:40

Try using java8

The 2.10 stable release only works on Java 8. The nightly builds may or may not work on Java 9/10/11.

The same for me on Linux Mint 19 (Tara)...

Try using java8

But with above information I create a bash (jitsi.sh) with chmod +x on my desktop, and then I can run Jitsi without changing JDK of OS:
`#jitsi.sh:
echo -e "Alternate to JDK8 to run Jitsi, and then restore to JDK11";
#use "update-java-alternatives -l" to edit that
#change to JDK8...
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64
#execute jitsi out of terminal, without waiting for it...
nohup jitsi&
#restore to JDK11...
sudo update-java-alternatives -s java-1.11.0-openjdk-amd64
#remove output
rm nohup.out
#the end :)
exit
`
So dumb :p but I tried with PATH and JAVA_PATH with no success, so I used that dumb brute force, wawawa.

The 2.10 stable release only works on Java 8. The nightly builds may or may not work on Java 9/10/11.

At least I think a warning message could be launched to inform that to users:

Hey, man, downgrade JDK and be happy.

And now instructions for newbie"s please .... 😁

After much pain, I got jitsi to run on debian buster. I did the following steps:
1: Remove java 11 (or anything newer that jdk8 (did it in synaptic)  -this will also remove jicofo and jitsi
2: install OpenJDK8 per https://linuxize.com/post/install-java-on-debian-10/   --make sure to scroll down to the java8 install
3: I had jitsi_2.10.5550-1_amd64.deb  so used: # dpkg -i jitsi_2.10.5550-1_amd64.deb ...voila it worked!
hope this helps someone!

Using old Java 8 should be consider as a workaround not as proper solution for this issue.


Add support for other library types

e.g. TV-Shows, relevant for e.g. https://github.com/tim-hat-die-hand-an-der-maus/plex-library-update-notifier

Needs generic support, e.g. DirectoryContent(ByName) returns a Movie, there should be a TvShow type which contains additional information like #seasons/#episodes.


Clean up part of the code

Link: https://github.com/ant-galaxy/oasis-engine/pull/1394

Codecov Report
Patch coverage: 55.55% and project coverage change: -0.18 :warning:

Comparison is base (74df8aa) 49.26% compared to head (69b9e0b) 49.08%.

:exclamation: Current head 69b9e0b differs from pull request most recent head 40d8ac3. Consider uploading reports for the commit 40d8ac3 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@             Coverage Diff             @@
##           dev/1.0    #1428      +/-   ##
===========================================
- Coverage    49.26%   49.08%   -0.18%
===========================================
  Files          363      363
  Lines        18398    18390       -8
  Branches      2637     2636       -1
===========================================
- Hits          9063     9026      -37
- Misses        8401     8433      +32
+ Partials       934      931       -3

Impacted Files
Coverage Δ

packages/core/src/2d/sprite/SpriteMask.ts
40.69% <ø> (ø)

packages/core/src/2d/sprite/SpriteRenderer.ts
32.25% <ø> (ø)

packages/core/src/mesh/BlendShapeManager.ts
53.13% <ø> (ø)

packages/core/src/shader/ShaderData.ts
77.48% <ø> (ø)

packages/core/src/shader/ShaderPart.ts
85.71% <0.00%> (ø)

packages/core/src/shader/ShaderPass.ts
75.75% <ø> (ø)

packages/core/src/shader/ShaderProgram.ts
52.08% <ø> (ø)

packages/core/src/ComponentsDependencies.ts
85.29% <60.00%> (+5.80%)
:arrow_up:

packages/core/src/shader/Shader.ts
47.36% <100.00%> (+1.02%)
:arrow_up:

... and 7 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Removed troublesome secret sharing handshake for services

Made module activation work by querying service registry
While this is by no means perfect, it should by more stable and no longer cause weird issues. It is an improvement.

This is not fully working yet on a clean install.

I believe by now this is 'fixed', I suspect it is not working on oms.aegee.org yet due to other start up related issues. Further investigation required.
For sure this entire module activation code should be reconsidered/rewritten/relocated (to central frontend)


stalwart-mail.webadmin: 0.1.19 -> 0.1.20

Changelog: https://github.com/stalwartlabs/webadmin/blob/v0.1.20/CHANGELOG.md
This allows to use the features made available in the last version of stalwart-mail
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 366347

x86_64-linux

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 366347

@ofborg build stalwart-mail.passthru.webadmin


Cache DNS queries

Currently my test runs spend about 40% of time doing DNS queries...

upstream is obviously inactive

It's as active as I'm able to invest. 😁  Looking forward to this PR!


IORPCMessage doesn't implement Debug

Error:
/claves/target/debug/build/apple-sys-2c839338cff8c061/out/Carbon.rs:56522:5
      |
56520 | #[derive(Debug)]
      |          ----- in this derive macro expansion
56521 | pub struct IORPCMessageErrorReturnContent {
56522 |     pub hdr: IORPCMessage,
      |     ^^^^^^^^^^^^^^^^^^^^^ `IORPCMessage` cannot be formatted using `{:?}`
      |
      = help: the trait `Debug` is not implemented for `IORPCMessage`
      = note: add `#[derive(Debug)]` to `IORPCMessage` or manually `impl Debug for IORPCMessage`
      = note: this error originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
help: consider annotating `IORPCMessage` with `#[derive(Debug)]`
      |
56510 | #[derive(Debug)]
      |

For more information about this error, try `rustc --explain E0277`.
error: could not compile `apple-sys` due to previous error

OS: MacOS 13.0.0

Got the same problem

Hit this here: https://github.com/segevfiner/keepawake-rs/actions/runs/4003781872/jobs/6872195492

Thank you all! I will publish a new version soon.

I published 0.2.0
Thank you for long time waiting!


Module cannot be found in the npm registry

This module is no visible in the npm registry:
'@sapmentors/cds-scp-api@latest' is not in the npm registry.

Please can you give some additional info what you mean with module is no visible in the npm registry?
When I run npm info @sapmentors/cds-scp-api@latest I will get the information of the npm registry.
And I can install the package with npm i  and dependency "@sapmentors/cds-scp-api": "latest"
And npm i @sapmentors/cds-scp-api@latest will install it directly.

Please can you give some additional info what you mean with module is no visible in the npm registry?
When I run npm info @sapmentors/cds-scp-api@latest I will get the information of the npm registry.
And I can install the package with npm i and dependency "@sapmentors/cds-scp-api": "latest"
And npm i @sapmentors/cds-scp-api@latest will install it directly.

Here's what I have on my side:
$ npm info @sapmentors/cds-scp-api@latest
npm ERR! code E404
npm ERR! 404 '@sapmentors/cds-scp-api' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.
npm ERR! 404
npm ERR! 404  '@sapmentors/cds-scp-api@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

Check out the section Installing a package in Setting up GitHub packages for NPM. @raeijpe whats the reason you haven't published to npmjs? Check out the action we use in cds-pg: .github/workflows

Hi Gregor, I published it public manually, today, but I have to wait 24 hours. I add you as admin and maybe you can set up the workflow

Hi Gregor, I published it public manually, today, but I have to wait 24 hours. I add you as admin and maybe you can set up the workflow

Just FYI, the module is still not visible on npmjs.org

Hi, This module is still not visible on npmjs.com per today

Still not available

Here we go: https://www.npmjs.com/package/@sapmentors/cds-scp-api
Hope someone can help to fix the not working test issue.


Add files via upload

Looks like the error is with someone else's file: EBeam_ColemanTheSoulman.gds


UX proposal: Rename Cancel-button

Under signing, when pressing "Show QR", it seems more natural to call the exit button on this screen "Back" or "Close" since you actually not cancelling any operation:

Good suggestion, implemented for both display and scan QR dialogs in fbc49fd6.

Thank you!


Implement issue# 13996. Add File.tempFile.

This adds a File.tempFile, which generates a random file name and
returns an open std.stdio.File for it. Unlike with File.tmpfile, it's a
normal file which is not deleted when the file is closed, and you
actually have access to the file's name, which is necessary in many
situations - particularly when writing unit tests that need to write to
a file and then read from it.

Great looks really good, much simpler than I thought due to the existing fdopen and name.

Okay. I made changes per the comments.

So now we'll have both File.tmpfile and File.tempFile, each with slightly different behaviour? :(

So now we'll have both File.tmpfile and File.tempFile, each with slightly different behaviour? :(

I would love to get rid of tmpfile. IMHO, it's useless. Every time that I've need a temporary file, I've need to be able to close it and reopen it again, and that's not possible with tmpfile. The only reason that tmpfile isn't marked as scheduled for deprecation here is because Martin was arguing against it in the enhancement request that this goes with, and I didn't really want to argue about it. But I have no problem with putting tmpfile on the deprecation path. It's a misfeature IMHO.

I think we should rename tempFile to scratchFile

I think we should rename tempFile to scratchFile

I don't think that is a name a developer would look for when trying to create a temporary file.

@jmdavis  Isn't reopening a tempfile with a fixed filename vulnerable to security holes? E.g., if somebody successfully guesses the filename and creates it between the time it's closed and the time it's open, with crafted file permissions/ownerships?

Andrei has a point, because if the file is not automatically deleted, it's not really temporary.
Anyway, maybe there could be a compromise, but I don't know whether it's possible: Could the file be deleted at first, so that it automatically gets released when the program ends, but as soon as someone accesses the file name, a link (hardlink) in /tmp is created? The first part is easily achievable on Posix, and I believe on Windows you can use FILE_SHARE_DELETE, but I don't know whether there's a cross-platform way to create a link from an fd. On older versions of Linux, you used to be able to create a link from /proc/self/fd/... to the desired filename, but this doesn't work anymore. OTOH, there's now (>= 3.11)  O_TMPFILE, which can be used in combination with linkat() to achieve the same effect in a cleaner way [1], [2]. No idea about Windows and the BSDs though...
[1] http://man7.org/linux/man-pages/man2/open.2.html
[2] http://man7.org/linux/man-pages/man2/linkat.2.html

@quickfur It's opened with O_EXCL, kept open, and then a File is created from the fd. It's fine AFAICS.

@schuetzm I was responding to @jmdavis 's comment that he wanted to be able to close the file and reopen it again later.

@andralex

I think we should rename tempFile to scratchFile

I don't really care. It's functionality itself that matters, but I've never heard anyone use the term "scratch file, " and I'd expect anyone looking for this sort of functionality to be looking for something referring to "temporary files." So, I would think that it would be missed much more easily if it were called scratchFile. A link to it could be provided in tmpfile's documentation though, since tmpfile is likely what folks would find first when looking for this functionality.

Isn't reopening a tempfile with a fixed filename vulnerable to security holes

@quickfur I honestly have no idea what the purpose of a file is if you can't close it and reopen it. Obviously, someone has a use for that, or tmpdir wouldn't exist in the first place. But the fact that most files that anyone deals with have specific names means that most any file that you open has the risk of being replaced by another process with the permissions to do so, so if you have security concerns with a file being changed out from under you, because you closed it and reopened it, then you're going to have those concerns with almost every file on the computer. If there are good reasons to keep tmpfile around because of its unique properties, then fine. I didn't deprecate it as part of this PR, because I didn't want to argue the point. But for every situation that I've seen where a temporary file would be useful, tempFile does exactly what I'd need. The need for it has come up several times in the newsgroups before, and apparently, dub recently had a need for it as well. So, I'm quite certain that we should have something like tempFile, regardless of whether tmpfile is of any use or not (though I have never seen a use for it myself).

Andrei has a point, because if the file is not automatically deleted, it's not really temporary.

It's my understanding that most temporary files go into a directory where the OS will delete it later (typically when rebooting). Anyone who doesn't want to rely on that can just delete it themselves when they're done with it. But having the file deleted when it has been closed is something that I have never found a use for, and I have frequently needed to be able create temporary files that I've needed to reopen (especially in unit tests, though the need does come up occasionally as part of the normal operation of a program). So, I see no need to complicate things by trying to figure out how to the delete the file automatically, especially when it's trivial enough for the progam to take care of that itself if it cares.

@jmdavis Some machines aren't rebooted for years. And in general, it's seen as the file creator's responsibility to clean tempfiles when they are no longer needed. openSUSE even made the (IMO stupid) decision not to clean /tmp by default, an admin has to enable it explicitly. In an ideal world, a temporary file would exist exactly as long as it's needed. I think we should strive to come as close to that as possible.
Access to the filename is a convenient indication that the filename is like to be used by another program and should therefore not be deleted. But an explicit call to a method e.g. dontDelete() is another option.

@jmdavis The context of the tmpfile security hole is that at least on Posix, temporary files usually end up in /tmp which tends to be world-writable, thus opening the door for malicious processes to exploit predictable temporary filenames. Non-temporary files, OTOH, tend to sit in dedicated directories with permissions restricted to whoever/whatever actually needs to access the file, so this is generally not a problem.

@schuetzm Honestly, I think that what you're looking for is not going to be easily achievable (if possible at all) without just doing what tmpfile does, and I don't think that it's even vaguely worth the effort. It's trivial for anyone to delete the file when they're done if that's what they want to do, and then Phobos doesn't have to read minds or figure how to magically delete the file when the program exits. The documentation is explicit that it does not delete the file, so it should be clear that any program that wants to make sure that that's done is going to have to take care of it itself.
@quickfur Even on POSIX systems, permissions are not restricted to anything more specfiic than the user, so there's really no protection against other programs doing something to a particular program's files unless they're being running by different users. And the permissions aren't determined by where the file is. Looking at my /tmp directory now, almost nothing in there is writeable by anyone other than the user. Most aren't even readable by anyone other than the user. And with the the current implementation of tempFile, it's restricted with only R/W permissions for the current user. Any further permissions would have to be set later. Also, if anyone wants to put their temporary files in a particular directory, tempFile lets them do that. It just defaults to whatever std.file.tempDir returns on the current system.

I've never heard anyone use the term "scratch file, "

Did you find any identical library facilities anywhere?

and I'd expect anyone looking for this sort of functionality to be looking for something referring to "temporary files." So, I would think that it would be missed much more easily if it were called scratchFile. A link to it could be provided in tmpfile's documentation though, since tmpfile is likely what folks would find first when looking for this functionality.

Having the names tmpFile and tempFile in the standard library is not acceptable.

BTW I wonder whether this facility can be folded into tmpFile as runtime arguments - flags with prefix and suffix and a yes/no flag telling whether the file should be automatically deleted.

BTW I wonder whether this facility can be folded into tmpFile as runtime arguments - flags with prefix and suffix and a yes/no flag telling whether the file should be automatically deleted.

Honestly, I think that that's getting overly complicated. Also, tmpfile essentially is a safe wrapper around a standard POSIX function - including its name - so it's arguably better to leave it as-is if we want it. If tempFile is a problem, I'd rather go with scratchFile than trying to either complicate tempFile/scratchFile with functionality relating to deleting the file or complicating tmpfile with functionality that the underlying tmpfile doesn't have. tempFile/scratchFile is closer to POSIX's mktemp than tmpfile, though tempFile/scratchFile is more flexible than mktemp (e.g. tempFile/scratchFile allow you to say where the file is going).
Also, other than keeping a list of temporary files to delete on program exit, I don't see a way to actually delete named files when the application closes rather than when the file closes. And having the file deleted when it's closed is precisely why tmpfile is so useless (that and the fact that it doesn't provide a file name to be able to manipulate the file separately from the original FILE handle.)
I think that the key thing here is to have a function which randomly generates a file name and makes sure that the file is unique by opening it with the proper flags, preventing another process from creating it between the time that you generate the file name and the time that you open it. And being able to specify where the file goes can be very valuable for any program that is going to need to pass that file to another program.
If we feel that tempFile is too close a name to tmpfile, and we want to keep tmpfile around, then I can certainly live with renaming it to scratchFile.

@jmdavis The key to the exploit is not in the permissions of the files themselves, but in the permissions of the /tmp directory. Since /tmp is world-writable, the trick is to (1) predict a temporary filename that the targeted program will use, (2) right before the program attempts to open that file, create a file with the same name but with different permissions than it would have been created. (3) The program opens it, thinking it has default permissions (which are fine, btw), but actually it doesn't. (4) The exploit code takes advantage of these wrong permissions to make the program do something it shouldn't be able to do.
Btw, lest it be misunderstood, I'm not suggesting that we should address this in this PR, I'm just raising awareness that reusing temporary filenames is vulnerable to security exploits of this kind, and that therefore we may want to think twice before removing the ability to create temporary files that are exclusive and auto-delete once you close them.

@quickfur The exploit that you describe would be impossible with tempFile, because the flags that it uses to open the file require that the file not exist beforehand, and it attempts two more times with different file names if opening the file failed. So, at worst, a malicious program could stop a program using tempFile from successfully using tempFile if it somehow created files corresponding to tempFile's three attempts. But with 15 random characters in the name, I doubt that any program would be able to successfully guess what the randomly generated name would be anyway.
The only risk would be in a program manipulating the temporary file after it had been created by tempFile. It would have to have to be run by the current user for that to be possible, and if it could do that, it could do it to any other file that the program might access, temporary or otherwise.
Personally, I have no idea what you'd even do with a file that you don't know the name of and which gets deleted when it's closed, but if we want to keep that functionality, then we can just keep tmpfile.

@jmdavis I think our conversation got lost in the rest of the discussion somewhere... I was responding to your comment that you'd like to be able to close a temp file and then reopen it again afterwards (presumably with the same randomly-generated name). That's where the window of opportunity for this exploit comes in. Normal usage (create the tempfile once, delete it after use) isn't what I was concerned with.

@quickfur Yeah. I'd like to be able to close a temp file and then reopen it, but the exploit that you described involves another program creating the temp file before you open it, making it so that it isn't created with the correct permissions. However, tempFile/scratchFile specifically opens the file with a flag indicating that the file has to be created with the open call, or the open call will fail. So, that exploit won't work. Others might, but not that one. Any process which screws with the file is going to have to have to be running as the same user as the current process - which could certainly happen - but that's a risk with any file with a name and which therefore can be accessed by another process run by the same user.
In any case, the main security concern here that I'm aware of is that the open call needs to open the file with the flag which requires that the open call create the file in order to avoid another process from creating the file first (be it a malicious process or merely another one generating a temporary file), and tempFile/scratchFile is doing that.

It doesn't have to be a file with the wrong permissions; it could be a symlink to an unexpected location. But anyway, that's tangential to this actual PR, so I'll shut up now. :-P

Honestly, I think that that's getting overly complicated. Also, tmpfile essentially is a safe wrapper around a standard POSIX function - including its name - so it's arguably better to leave it as-is if we want it. If tempFile is a problem, I'd rather go with scratchFile

Fine. The point here is to find a good name for this (scratchFile was just a suggestion).

scratchFile is ok, but please mention it in tmpfile docs as available alternative, otherwise no one will find it.

Agreed. Regardless of the name, the functionality of the two functions is similar enough that their documentation should refer to each other.

Sounds like a plan :).

OK, the bikeshed is yellow, can we go on with this?

Okay. It's now named scratchFile, and I made some minor improvements based on the feedback. And it now passes on all platforms - including Win64 (which is failing on before).

Updated per most recent comments.

Auto-merge toggled on

This pull request caused a +508KB (684KB -> 1191KB) increase in the size of a compiled "Hello, world" program.

Are static functions not emitted to a separate object like free standing functions?

It's probably due to the new imports.

Treemaps:
http://thecybershadow.net/d/mapview/view.php?id=5549a753478ac - before
http://thecybershadow.net/d/mapview/view.php?id=5549a75cb44fb - after
It is now pulling in:

std.datetime
std.format
std.array
std.windows.registry
std.algorithm
std.utf
etc.

I hate static constructors and how they bloat statically linked binaries.

There's also Object.factory, which is pulling in all declared classes' virtual methods and everything they use, but I'm not sure if it's at play here.

There's also Object.factory, which is pulling in all declared classes' virtual methods and everything they use, but I'm not sure if it's at play here.

A lot of this stuff should be done using weak-linkage, but we should also finally gear towars a shared phobos library.

I'm reverting this because of the disastrous executable file size increase in code that doesn't use this new function. The functionality needs a redesign.

A simple but hackish fix would be to make the functions templated (add empty TemplateArgumentList). The imports will only be pulled in when the function is called (and the template instantiated). The downside is that things such as taking the address of the functions will fail and require an explicit instantiation (&scratchFile!()).

A simple but hackish fix would be to make the functions templated (add empty TemplateArgumentList). The imports will only be pulled in when the function is called (and the template instantiated). The downside is that things such as taking the address of the functions will fail and require an explicit instantiation (&scratchFile!()).

I wouldn't really consider that to be much of a downside, since I can't imagine that it's a common thing to do with a function like scratchFile, and scratchFile is new, so you're not going to have a bunch of code floating around that would break due to such a change. And if pretty much all it takes to get rid of the extra bloat in hello world is to templatize scratchFile, then seems like a sensible change to me, particularly since calling it is the same either way.

Right, I'm just saying that this isn't a universal fix, and doesn't handle the root of the issue.

Wait a second, this means anyone using the function would have to run semantic, import those module, and optimize the code. Right now this only has to be done one when compiling phobos. Please let's address the real cause.

digger bisect returned this commit as cause of https://issues.dlang.org/show_bug.cgi?id=14828
(see comment in that bug though)

Binary size increase mostly seems to come from using std.file.tempFile. Maybe we can move the implementation of that into a std.internal.file module. Of course we could also split std.file into a package, but that wasn't received too well lately.

Also weird that a static function of a struct get's dragged into the executable without that function being used. Maybe we need to tweak our multilib code in the compiler.


Add SETFCAP Capabilities to Helm psp template

Add missing capability to Helm psp template

Q
A

Bug fix?
yes

New feature?
no

API breaks?
no

Deprecations?
no

Related tickets
https://github.com/banzaicloud/bank-vaults/pull/1257

License
Apache 2.0

What's in this PR?

According to https://github.com/banzaicloud/bank-vaults/pull/1257 add missing capability to Helm psp template
Why?

Current Pod Security Policy  does not allow to deploys vault pods
Additional context

Warning  FailedCreate  56s (x3 over 3m40s)    statefulset-controller  create Pod vault-ph-stage-1 in StatefulSet vault-ph-stage failed error: pods "vault-ph-stage-1" is forbidden: PodSecurityPolicy: unable to admit pod: [spec.containers[0].securityContext.capabilities.add: Invalid value: "SETFCAP": capability may not be added spec.containers[0].securityContext.capabilities.add: Invalid value: "IPC_LOCK": capability may not be added spec.containers[0].securityContext.capabilities.add: Invalid value: "SETFCAP": capability may not be added spec.volumes[0]: Invalid value: "configMap": configMap volumes are not allowed to be used spec.volumes[1]: Invalid value: "emptyDir": emptyDir volumes are not allowed to be used spec.containers[0].securityContext.capabilities.add: Invalid value: "IPC_LOCK": capability may not be added spec.containers[0].securityContext.capabilities.add: Invalid value: "SETFCAP": capability may not be added]

Checklist

[x] Code meets the Developer Guide
[x] User guide and development docs updated (if needed)
[x] Related Helm chart(s) updated (if needed)

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

Ah CLA is signed already, than just the chart bump :)

@bonifaido  Done. Change chart version
version: 1.13.1 --> version: 1.13.2


Fix small README mistakes

df.to_csv -> df.to_parquet (the given filename was actually lakes.parquet, so this was just a typo).
Add an example lpath to the fs.scope example (this was uncaught because the code cell did not carry the context from the above cell).

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

Comparison is base (c90dc15) 92.61% compared to head (75ee86c) 92.61%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #99   +/-   ##
=======================================
  Coverage   92.61%   92.61%
=======================================
  Files           7        7
  Lines         406      406
  Branches       68       68
=======================================
  Hits          376      376
  Misses         14       14
  Partials       16       16

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


MiAIRR "Lab" clarification...

Hello All,
I am trying to get a clear understanding of what the Minimal Standard "Lab" entity relates to.
In the iReceptor world we have a concept of a lab, but it is the lab that is carrying out the study. That is the "Jamie Scott Lab" has a bunch of studies that they have done...
It appears that the lab entity in MiAIRR is focused around data collection and data deposition. Is the intent the same as the iReceptor intent and the contact info for the data collection and data deposition are contact points within the lab for key aspects of the work?
Some in our group have interpreted the data processing fields as implying that the lab information is intended to identify the lab that has done the data collection/processing (that is, it is potentially a different lab than that carrying out the study).
Can someone clarify the intent here. I suspect we need to clean up the description of these fields one way or the other 8-)
Brian

Just to be clear, I am referring to:
1 / study | Lab name
1 / study | Contact information (data collection)
1 / study | Contact information (data deposition)
1 / study | Lab address

I'm not sure this completely answers the question, but for NCBI submission at least the study <-> BioProject. In a BioProject submission, the first screen has submitter information. This would correspond to the "Contact information (data deposition" and "Lab address" fields, though note that NCBI does not have any field that corresponds explicitly to "Lab name".

Later on the submission process, there is the ability to indicate a data provider with the help saying "indicate the data provider (data submitter) if it is someone other than the submitting organization or consortium. For example, a sequencing center or a DACC." It would seem you could specify this scenario with "Contact information (data collection)". In the NCBI form, this is a free text field, plus an additional field to provide a URL.

Could we collapse these 4 fields into 2 (data collection & data deposition), which both contain:

PoC name
PoC email
department
institution
full address

This way we would be most flexible, e.g. if a consortium has a centralized facility for data submission that could belong to a different institution.

I assume that the intent is that through these fields we are providing the principal contact point for a study (there is no other mechanism for this at the moment). If so, which one of these is the principal contact. Or should there be three, the principal lab/contact person (the "corresponding author" so to speak), the data collection lab, and the data submission lab? In the iReceptor world, we have a principal lab and contact, but not separate information for data collection and data submission. I am trying to figure out which is the principal contact point for the study from the current fields. This is unclear to me at the moment.
iReceptor allows you to group/aggregate study/data views based on lab. For example, you could look at all of the studies where the "Kleinstein Lab" was the "data collector" (assuming there was such data in a repository). I am trying to determine which "lab" entity in the Minimal Standards our principal lab aggregation should relate to.
Should there be another group of entities in the Minimal Standard about being the principal contact for the study itself (as opposed to data collection and data submission which could be different). Or is what we have enough?
Brian

The "collecting" lab / PoC would be the principal contact for the study. The "submitting" PoC is mainly provided to quickly resolve technical issues with the submission itself.
IIRC we discussed the trichotomy (corresponding/collecting/submitting) you mentioned, but decided that for nearly all purposes (sample requests, legal compliance, etc.) "collecting" could be considered a subcontractor of "corresponding", so we did not include it. In case there is any scenario in which this would be important, we should discuss again.

OK, this seems more clear...
One other question - the standard states that the "Contact  information (data collection)" field has a content type of "RFC6530-compliant email address". This seems restrictive, in that there is no ability to put something like "Brian Corrie (bdcorrie@gmail.com)" as the contact information. Was the intent of this field to enforce it to be an email address and only an email address? That is how I interpret the "content type" as it stands now.

I think the idea here was that Lab name, Lab address and Contact information (data collection) would all refer to the same group/institution, so that in the contact field we wanted to make sure that there is a valid e-mail address on file (assumed to belong to the PI). If we go for the dichotomy (collecting/submitting) we discussed, then each of the two fields would become free text again, containing the five items listed above.

The definitions have been amended and slightly changed in 8f63c1e8dde61ba771bc062f1fa74f74c061ac25, but otherwise the four fields are still in v0.1. I will close this issue, if you want to have it on the MiAIRR v2 change list, please reopen it.

I have a vague memory that not all possible contacts were include in the template because of 'the minimalism'


[$250] Migrate BaseErrorBoundary.js to function component

Class Component Migration
Filenames

[ ] src/components/ErrorBoundary/BaseErrorBoundary.js

type: React.Component
has state values: true
has refs: false
has context: false
lifecycle methods: none

Task

We currently have some class components in our codebase that we would like to refactor to a function component.
Here's a link with some general advice on how to refactor a class component to a function component: https://react.dev/reference/react/Component#alternatives
If you need additional guidance, please ask in #expensify-open-source
Test for any regressions and verify that there are no breaking changes

Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~015fefe6436206eb21
Upwork Job ID:<PHONE_NUMBER>423496192
Last Price Increase: 2023-08-28

⚠ Could not update price automatically because there is no linked Upwork Job ID. The BZ team member will need to update the price manually in Upwork.

I'd like to work on this issue

I'd love to work on this.

I am ready to work on this ticket. :)

I'd like to work on this.

I can work on this

I would like to work on this issue.

Assigning this one to @AGarciaNY as we discussed offline.

Dibs

@rushatgabhane bump on the PR review: https://github.com/Expensify/App/pull/25421

@rushatgabhane do you want @aimane-chnaif to take this one instead? It'd be great to get it closed off.

@aimane-chnaif all you!

This is on staging.

@AGarciaNY can you please accept the upwork offer so that I can pay this out. Thanks!

All paid!


Fix layout in plot_scalpEvolution

This function should use the whole axis for the scalp maps. However, it seems to reserve space for plotting additionally a channel (as ERP), which is left blank.
Try this:

demo_analysis_ERPs
fig_set(1, 'Resize',[1 1/2]); clf
plot_scalpEvolution(epo_r, mnt, ival_scalps)

Claimed.


Make data controller refresh handle direct mode

Changes:

Changed az arcdata dc config show to take resourceGroup as a param for direct mode
Handled direct mode and indirect mode az arcdata dc config show differences
Made refresh() call either refreshDirectMode() or refreshIndirectMode() depending on connectionMode
Added resourceGroup as a param for all calls to refresh()

This is an example of the refresh button that will call refresh():

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

6 of 48 (12.5%)  changed or added relevant lines in 13 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.01%) to 42.01%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

extensions/arc/src/ui/dashboards/controller/controllerDashboard.ts
0
1
0.0%

extensions/arc/src/ui/dashboards/controller/controllerDashboardOverviewPage.ts
0
1
0.0%

extensions/arc/src/ui/dashboards/miaa/miaaBackupsPage.ts
0
1
0.0%

extensions/arc/src/ui/dashboards/miaa/miaaDashboard.ts
0
1
0.0%

extensions/arc/src/ui/dashboards/miaa/miaaDashboardOverviewPage.ts
0
1
0.0%

extensions/arc/src/ui/dashboards/postgres/postgresDashboard.ts
0
1
0.0%

extensions/arc/src/ui/dialogs/connectControllerDialog.ts
0
1
0.0%

extensions/azcli/src/api.ts
0
1
0.0%

extensions/azcli/src/az.ts
6
7
85.71%

extensions/arc/src/ui/dashboards/controller/controllerUpgrades.ts
0
2
0.0%

Files with Coverage Reduction
New Missed Lines
%

extensions/arc/src/models/controllerModel.ts
1
0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.01%

Covered Lines:
27948

Relevant Lines:
62214

💛  - Coveralls