{"id":19210970,"url":"https://github.com/bowbahdoe/guava-generator","last_synced_at":"2025-08-02T01:39:59.020Z","repository":{"id":185749291,"uuid":"673137679","full_name":"bowbahdoe/guava-generator","owner":"bowbahdoe","description":"Scripts to repackaged and modularize most of google's guava","archived":false,"fork":false,"pushed_at":"2025-01-14T04:34:31.000Z","size":62,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-14T05:25:52.790Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bowbahdoe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-01T00:53:31.000Z","updated_at":"2025-01-14T04:34:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"1fe3a783-7491-43af-bd7e-fffbde9aca5a","html_url":"https://github.com/bowbahdoe/guava-generator","commit_stats":null,"previous_names":["bowbahdoe/guava-generator"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bowbahdoe%2Fguava-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bowbahdoe%2Fguava-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bowbahdoe%2Fguava-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bowbahdoe%2Fguava-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bowbahdoe","download_url":"https://codeload.github.com/bowbahdoe/guava-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240286517,"owners_count":19777354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T13:40:01.070Z","updated_at":"2025-02-23T07:42:10.627Z","avatar_url":"https://github.com/bowbahdoe.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# guava-generator\n\nThis is a collection of python scripts which serve the purpose of mechanically repackaging and modularizing\n[Guava](https://github.com/google/guava)\n\n- `reset.py` will set each of the submodules to their most recent `main`\n- `upgrade.py` will do a find+replace of a version string in the required files for each submodule\n- `foreach.py` will run a command for each submodule\n- `compile.py` will attempt to run `mvn compile` for each submodule\n- `generate.py` will update the code of all of the submodules to the given commit hash of guava\n- `commit.py` will push changes to remote repos\n\n## Usage\n\nConsult the repos for the subprojects for the latest releases and dependency information.\n\n* [dev.mccue.guava](https://github.com/bowbahdoe/guava)\n* [dev.mccue.guava.base](https://github.com/bowbahdoe/guava-base)\n* [dev.mccue.guava.primitives](https://github.com/bowbahdoe/guava-primitives)\n* [dev.mccue.guava.escape](https://github.com/bowbahdoe/guava-escape)\n* [dev.mccue.guava.math](https://github.com/bowbahdoe/guava-math)\n* [dev.mccue.guava.collect](https://github.com/bowbahdoe/guava-collect)\n* [dev.mccue.guava.xml](https://github.com/bowbahdoe/guava-xml)\n* [dev.mccue.guava.html](https://github.com/bowbahdoe/guava-html)\n* [dev.mccue.guava.graph](https://github.com/bowbahdoe/guava-graph)\n* [dev.mccue.guava.hash](https://github.com/bowbahdoe/guava-hash)\n* [dev.mccue.guava.io](https://github.com/bowbahdoe/guava-io)\n* [dev.mccue.guava.net](https://github.com/bowbahdoe/guava-net)\n* [dev.mccue.guava.reflect](https://github.com/bowbahdoe/guava-reflect)\n* [dev.mccue.guava.concurrent](https://github.com/bowbahdoe/guava-concurrent)\n\n## Changes made from Guava\n\n* Everything is shaded under `dev.mccue.guava`\n    * `com.google.common.util.concurrent` is turned into `dev.mccue.guava.concurrent`, dropping the `util`\n* All usages of `sun.misc.Unsafe` are removed\n    * The unsafe implementation is removed, leaving a safe fallback in `LittleEndianByteArray`, `AbstractFuture`, and `UnsignedBytes`\n    * The unsafe implementation in is replaced with a new one based on `VarHandle`s in `Striped64`\n* All usages of `sun.misc.JavaLangAccess` are removed\n    * Replaced with `Throwable.getStackTrace` in `Throwables`\n* All usages of `finalize()` are removed\n    * `FileBackedOutputStream` has a constructor which takes a boolean to indicate that resources should be freed on finalization. This was made private and the logic was removed.\n* All usages of the Security Manager are removed\n    * `Types` catches an `AccessControlException` and that could safely be replaced with catching an `Exception`\n    * Explicit uses of the security manager in `LittleEndianByteArray`, `AbstractFuture`, `UnsignedBytes`,  and `Striped64` were removed along with the code to load `sun.misc.Unsafe`.\n* All usages of `java.util.logging.Logger` were replaced with `java.lang.System.Logger`\n    * With this change, the only JDK module depended on is `java.base`.\n* All usages of `javax.annotation.*` classes from `com.google.code.findbugs/jsr305` are replaced with equivalent classes from `dev.mccue/jsr305`\n* `FinalizableReferenceQueue` and associated classes were removed\n    * They were rarely used, probably do a job better done by a `Cleaner`, and I wasn't able to validate that they would behave correctly in a module\n* Annotation modules are used via `requires static` and are not carried over to dependents.\n* All annotation usages from `com.google.common.annotations` and `com.google.j2objc.annotations` have been removed\n* Split into multiple submodules, each with their own `module-info.java`\n* Drops explicit support for GWT, j2objc, j2cl, etc.\n* Drops explicit support for android (equivalent to the `-jre` build)\n* Does not include\n  * `com.google.common.eventbus` (Guava docs explicitly recommends against its use)\n  * `com.google.common.cache` ([Caffiene](https://github.com/ben-manes/caffeine) covers that use.)\n  * `com.google.common.annotations` (Only `@Beta` and `@VisibleForTesting` would be relevant without GWT+etc. testing, and you can make your own pretty easily.)\n* Compiled for Java 9+, not Java 8\n\n## Graph \n\n![Graph of dependencies](https://github.com/bowbahdoe/guava-generator/assets/5004262/aa4b97c0-032b-4f1d-933e-738b065c3b7e)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbowbahdoe%2Fguava-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbowbahdoe%2Fguava-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbowbahdoe%2Fguava-generator/lists"}