Skip to content

[pull] master from Netflix:master #106

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 673 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 145 commits
Commits
Show all changes
673 commits
Select commit Hold shift + click to select a range
a3312cc
Revert "better error message with dump (#2130)" (#2141)
saikonen Nov 13, 2024
05f9756
bump version to 2.12.30 (#2142)
saikonen Nov 13, 2024
d8c7cc5
[jobsets] Fix killing jobsets using deletion (#2149)
valayDave Nov 21, 2024
50298d7
Deploy time triggers (#2133)
KaylaSeeley Nov 22, 2024
a3d087e
Bump version to 2.12.31
romain-intel Nov 22, 2024
15c86b9
[runtime] run-hbs for local runtime's `run` command (#2150)
valayDave Nov 26, 2024
6355a1b
bump version to 2.12.32 (#2151)
saikonen Nov 26, 2024
7b594b4
[parallel] exclude `_parallel_ubf_iter` from `merge_artifacts` (#2152)
valayDave Nov 26, 2024
f3a1857
Revert "Deploy time triggers (#2133)" (#2153)
savingoyal Nov 27, 2024
8ccbbbe
Update version.py (#2154)
savingoyal Nov 27, 2024
286f9ac
Async runner improvements (#2056)
filipcacky Dec 2, 2024
2efd754
fix: S3 paths with fragments not working (#2156)
saikonen Dec 3, 2024
c7cb8b5
Add generic typing to multicore_utils.py (#2147)
bryant1410 Dec 4, 2024
c78c202
Deploy time triggers (v2) (#2157)
talsperre Dec 4, 2024
c72c93f
bump version to 2.12.34 (#2158)
saikonen Dec 4, 2024
9e532f2
fix --only-json issues (#2162)
saikonen Dec 5, 2024
0469eeb
feature: Support choosing Kubernetes QoS class through the decorator …
saikonen Dec 5, 2024
be7fe5a
bump version to 2.12.35 (#2164)
saikonen Dec 5, 2024
4dd5739
Fix issue with resume combined with `@parallel` (#2163)
romain-intel Dec 6, 2024
5d7ad58
Bump version to 2.12.36
romain-intel Dec 6, 2024
c54a0d5
Metaflow Configs (#1962)
romain-intel Dec 7, 2024
b782b9e
Bump version
romain-intel Dec 7, 2024
e2114f5
Fix case where the decorator's init function could be called twice. (…
romain-intel Dec 8, 2024
3c5a3f2
Bump version to 2.12.38
romain-intel Dec 8, 2024
12c97e3
Fix issue where run_command blocks when it shouldn't (#2169)
romain-intel Dec 10, 2024
b2bb54c
cleanup conda/pypi usage of _user_defined_attributes (#2168)
saikonen Dec 10, 2024
3fffa6c
fix: conda/pypi user-defined attributes tracking (#2170)
saikonen Dec 10, 2024
b3c3fc8
update local metadata provider unit test (#2172)
saikonen Dec 10, 2024
b3b109a
bump version to 2.12.39 (#2171)
saikonen Dec 10, 2024
e9f5abd
boost remote env bootstrap by 70% (#2175)
savingoyal Dec 12, 2024
12b6869
boost local bootstrap latency by 20% (#2176)
savingoyal Dec 12, 2024
883365d
set CONDA_OVERRIDE_GLIBC by default (#2177)
savingoyal Dec 13, 2024
ca24277
fail early without needing to reduce file_read_timeout (#2180)
mt-ob Dec 16, 2024
40881fe
wait for terminal state (#2181)
mt-ob Dec 16, 2024
cd6ed29
refactor: rename parse_secret_string_as_json option to json for clari…
isatyamks Dec 18, 2024
20406f4
include flowdir in syspath while loading file in Runner API (#2182)
mt-ob Dec 18, 2024
fd13237
Fix/configs update (#2183)
savingoyal Dec 20, 2024
c923ac4
Bump version to 2.13
romain-intel Dec 20, 2024
8c630a9
feature: custom annotations revisited (#1568)
saikonen Dec 20, 2024
426f1ea
Cleanup @kubernetes, @conda etc. (#2186)
savingoyal Dec 27, 2024
be7b6f3
remove spurious commit (#2189)
savingoyal Dec 27, 2024
94e0093
fix error message for pip.py (#2190)
savingoyal Dec 27, 2024
0f31e25
feature: micromamba download from mirror (#2178)
saikonen Jan 3, 2025
e92990f
[heartbeats] Better error handling (#2193)
valayDave Jan 4, 2025
950428e
bump version to 2.13.1 (#2195)
saikonen Jan 6, 2025
a7042c7
Allow additional commands to be injected directly on the Runner() (#2…
romain-intel Jan 7, 2025
0dfef56
Fix a heisenbug in configs when unpacking a dictionary config (#2185)
romain-intel Jan 7, 2025
0ea63f3
feature: embed dag info into Argo Workflow Template annotations (#2174)
saikonen Jan 7, 2025
aa03edb
Fix an issue with resume and foreach (#2197)
romain-intel Jan 7, 2025
defd38b
strip double equals from conda version strings as unsupported by some…
saikonen Jan 8, 2025
0631b73
bump version to 2.13.2 (#2202)
saikonen Jan 8, 2025
2fb29ae
[cards] `PythonCode` component (#2196)
valayDave Jan 10, 2025
10bfd16
bump version to 2.13.3 (#2204)
saikonen Jan 10, 2025
96f5271
fix: remove step level decospecs (#2203)
saikonen Jan 11, 2025
49a073e
Fix configs to allow the use of configs as keys of other configs (#2206)
romain-intel Jan 13, 2025
ad26af5
Allow TL flow-decorator options to be provided as part of the decorat…
romain-intel Jan 15, 2025
1129a48
[cards] Fix config issue permanently. (#2205)
valayDave Jan 15, 2025
8771127
bump version to 2.13.4 (#2210)
saikonen Jan 15, 2025
21efaa3
metadata for spot termination for k8s (#2207)
mt-ob Jan 16, 2025
6763ea9
release 2.13.5 (#2215)
savingoyal Jan 16, 2025
e1ae62c
fix: Argo events project bug (#2216)
saikonen Jan 17, 2025
e682004
fix: add run_id annotation to pod metadata (#2213)
saikonen Jan 21, 2025
e2b93da
Bump vite from 5.4.6 to 5.4.14 in /metaflow/plugins/cards/ui (#2222)
dependabot[bot] Jan 22, 2025
9f028e7
Fix trigger on finish bugs, and refactor code (#2218)
talsperre Jan 23, 2025
d6a9272
bump version to 2.13.6 (#2224)
saikonen Jan 23, 2025
e801e6e
Fix an issue with using MutableFlow (#2223)
romain-intel Jan 23, 2025
d70dd4f
Support flow inheritance specifically around flow decorators. (#2221)
romain-intel Jan 23, 2025
4bf4995
Fix an issue with configs that were None (#2211)
romain-intel Jan 23, 2025
4fe39fe
bump version to 2.13.7 (#2225)
saikonen Jan 23, 2025
c7a04f0
[RfR]Reload all related parameters in runner (#2217)
wangchy27 Jan 23, 2025
7ccb2c2
fix runner API for flowspec as super class (#2230)
mt-ob Jan 28, 2025
e20449f
Fix an issue where processing MutableStep decos was skipped (#2227)
romain-intel Jan 28, 2025
ec95a14
guard against missing metadata in kube decorator (#2236)
saikonen Jan 30, 2025
8ff3dd2
Properly handle nargs=-1 for Click API (#2219)
romain-intel Jan 30, 2025
279a136
feature: fast initializer for conda environments (#2226)
saikonen Jan 30, 2025
9d67921
bump version to 2.13.8 (#2237)
saikonen Jan 30, 2025
181b857
properly return binary path after installation. also add mutex (#2239)
saikonen Jan 31, 2025
377bd3f
bump version to 2.13.9 (#2240)
saikonen Jan 31, 2025
01e52c5
Update cli.py to use `echo_always()` for method `output_raw` and `out…
xujiboy Feb 4, 2025
afd0910
feature: basic support for incident.io in Argo Workflows (#2245)
saikonen Feb 5, 2025
85da991
Fix issues with configs and Runner (#2234)
romain-intel Feb 5, 2025
b951b99
Update project doc with new possible options (#2220)
romain-intel Feb 7, 2025
f3fbf3d
serialize artifacts with pickle protocol 4 if possible (#2243)
amerberg Feb 7, 2025
ca412d4
change default micromamba for s3 datastore (#2254)
savingoyal Feb 11, 2025
555ee6e
Revert "change default micromamba for s3 datastore (#2254)" (#2255)
savingoyal Feb 11, 2025
32bfbdf
skip boto3 compilation for code download (#2257)
savingoyal Feb 11, 2025
fa456c2
bump version to 2.13.10 (#2260)
saikonen Feb 11, 2025
f8e4870
Introduce connection pooling in metadata service (#2258)
savingoyal Feb 11, 2025
5133611
fix: Deployer issue (#2261)
saikonen Feb 11, 2025
8d91c06
bump version to 2.14.0 (#2263)
saikonen Feb 11, 2025
c153eef
change default micromamba for s3 datastore (#2262)
savingoyal Feb 11, 2025
89f9467
Tracing cleanups (#2265)
savingoyal Feb 12, 2025
cdf721a
More varargs tweaks (#2249)
romain-intel Feb 12, 2025
b219258
Update flag for including for each stack info in metadata (#2266)
talsperre Feb 12, 2025
e86297c
fix save_logs.py (#2268)
savingoyal Feb 12, 2025
5c960ea
Update argo_workflows.py (#2270)
savingoyal Feb 13, 2025
e986cb4
[argo] fix bug in jobset owner reference (#2280)
valayDave Feb 19, 2025
b6b0dc8
[argo] add additional labels jobsets created by argo-wf. (#2281)
valayDave Feb 19, 2025
a19e782
add extract method to MetaflowCode (#2246)
savingoyal Feb 19, 2025
c9bab6f
Support escape init function (#2267)
wangchy27 Feb 20, 2025
c5925a2
fix: Argo notifications issues (#2285)
saikonen Feb 20, 2025
333eeeb
Add static and runtime dag info, API to fetch ancestor and successor …
talsperre Feb 20, 2025
e8efc78
bump version t o2.14.1 (#2286)
wangchy27 Feb 20, 2025
f5b1502
[Ready for Review] Make TOGGLE_DECOSPECS only add default decorator o…
darinyu Feb 21, 2025
d83577f
release 2.14.2 (#2287)
savingoyal Feb 21, 2025
eac9fdb
Revert "change default micromamba for s3 datastore (#2262)" (#2288)
savingoyal Feb 22, 2025
c1def39
Update version.py (#2289)
savingoyal Feb 22, 2025
9b2c029
mute stubs test for linux py3.13 (#2295)
savingoyal Feb 24, 2025
528c825
fix test configuration (#2294)
savingoyal Feb 24, 2025
731854e
feat: update metadata on ec2 spot termination for batch (#2271)
felippemr Feb 25, 2025
d50d02b
pin fast-init binary to latest (#2300)
saikonen Feb 25, 2025
0ae3213
skip signal handling in non main thread (#2299)
mt-ob Feb 25, 2025
8e38a51
local kubernetes setup (#2292)
savingoyal Feb 25, 2025
b987b91
bump version to 2.15.0 (#2303)
saikonen Feb 25, 2025
dd65882
support alternate architectures for @conda/@pypi (#2304)
savingoyal Feb 26, 2025
ef832e5
more realtime log fetching (#2307)
savingoyal Feb 26, 2025
8e719c7
@pypi/@conda parsers ... (#2306)
savingoyal Feb 27, 2025
7617add
Add metaflow-diff to main CLI (#2282)
npow Feb 28, 2025
69c1204
[jobsets] Fix bug in jobset atexit on local scheduler (#2312)
valayDave Feb 28, 2025
ea236a2
Fix issue in stubs where step decorators dont have any parameters (#2…
talsperre Feb 28, 2025
a5da3dc
release version 2.15.1 (#2314)
talsperre Feb 28, 2025
2414151
look for Makefile in more places (#2315)
savingoyal Mar 1, 2025
71a5e8c
yet another patch release (#2316)
savingoyal Mar 1, 2025
f2d2ab2
Fix issue with parsers not being compatible with extensions (#2320)
romain-intel Mar 2, 2025
08862c2
change default make goal to help (#2323)
savingoyal Mar 3, 2025
8fc6ad7
configure local events in makefile (#2324)
savingoyal Mar 3, 2025
99fdad2
yet another patch release (#2325)
savingoyal Mar 3, 2025
232de81
check gum and helm is installed properly (#2326)
savingoyal Mar 3, 2025
3946850
Allow users to pass a list of values as varargs to click API (#2330)
talsperre Mar 4, 2025
f66ad38
Yet another patch release (#2332)
talsperre Mar 5, 2025
40ca1d9
chore: update metadata service image in Tiltfile (#2331)
saikonen Mar 5, 2025
95f9767
chore: add GHA to test card ui builds (#2333)
saikonen Mar 5, 2025
b32894e
feature: Metaflow end-to-end testing GHA (#2336)
saikonen Mar 5, 2025
574c142
adding triggered_by_user annotation to workflow (#2310)
iamsgarg-ob Mar 6, 2025
1c7ef89
modernize readme (#2318)
savingoyal Mar 6, 2025
a3daba0
Update README.md (#2340)
savingoyal Mar 7, 2025
472111d
expose check_interval arg for wait methods for argo (#2343)
mt-ob Mar 12, 2025
92f31f0
fix: ancestry metadata service implementation (#2342)
saikonen Mar 12, 2025
3bd6fe7
feature: make --only-json a hidden option for argo workflows (#2339)
saikonen Mar 12, 2025
476a197
Update README.md (#2345)
savingoyal Mar 12, 2025
adc3d71
chore: upgrade GH workflows base ubuntu image (#2334)
saikonen Mar 12, 2025
206a43a
feature: replace incident.io incidents with alerts for the integratio…
saikonen Mar 13, 2025
8c79299
chore: incident.io alert payload cleanup (#2347)
saikonen Mar 13, 2025
7f4f2bb
release: 2.15.5 (#2348)
saikonen Mar 13, 2025
34de501
upgrade typeguard (#2311)
mt-ob Mar 15, 2025
4f0fca1
chore: add more supported pypi tags (#2352)
saikonen Mar 17, 2025
fa0374c
release: 2.15.6 (#2353)
saikonen Mar 17, 2025
fd23626
#2341: Use `docker info` for more portable check for running docker d…
yonirab Mar 17, 2025
cbc5e78
fix python names and help params in DeployedFlow from_deployment (#2357)
mt-ob Mar 21, 2025
3a02a3c
fix: json parameters argo workflows (#2356)
saikonen Mar 23, 2025
0ac91e8
2.15.7 release (#2358)
savingoyal Mar 24, 2025
f70c95b
upgrade pkginfo in CI (#2363)
mt-ob Mar 28, 2025
d9161bd
use 1.12.4 for pypi update action (#2365)
mt-ob Mar 28, 2025
2e97e51
Bump vite from 5.4.14 to 5.4.15 in /metaflow/plugins/cards/ui (#2364)
dependabot[bot] Mar 31, 2025
b9d0249
[RFR] S3 bugfixes (#2329)
npow Apr 2, 2025
c7a3b8a
reset AWS_SHARED_CREDENTIALS_FILE as AWS_CONFIG_FILE includes creds (…
daroczig Apr 4, 2025
98e1270
fix invalid imports (#2370)
savingoyal Apr 7, 2025
40d7a9d
fix description (#2371)
savingoyal Apr 7, 2025
2f8a27e
--environment=uv (#2368)
savingoyal Apr 8, 2025
c9a5922
Bump vite from 5.4.15 to 5.4.16 in /metaflow/plugins/cards/ui (#2367)
dependabot[bot] Apr 9, 2025
289e0e0
Bump vite from 5.4.16 to 5.4.17 in /metaflow/plugins/cards/ui (#2374)
dependabot[bot] Apr 11, 2025
e093037
feature: add custom metadata option for incident.io alerts configurat…
saikonen Apr 14, 2025
cff199c
introduce git info by default (#2372)
savingoyal Apr 14, 2025
37e6f53
Revert "introduce git info by default" (#2376)
romain-intel Apr 15, 2025
6761514
Revert "--environment=uv" (#2378)
romain-intel Apr 15, 2025
860719c
chore: update pre-commit action (#2382)
saikonen Apr 16, 2025
bcc5da5
Bump vite from 5.4.17 to 5.4.18 in /metaflow/plugins/cards/ui (#2383)
dependabot[bot] Apr 16, 2025
e5085a4
Git info in metadata (take 2) (#2377)
romain-intel Apr 17, 2025
92180e8
Fix an issue where default decospecs were not applied (#2381)
romain-intel Apr 17, 2025
8437b32
Feature/environment uv (take 2) (#2379)
romain-intel Apr 17, 2025
d8c95bf
Release 2.15.8 (#2384)
romain-intel Apr 17, 2025
380a722
[kubernetes] security context for pods (#2387)
valayDave Apr 22, 2025
33929dc
use absolute path for flow file for Runner and Deployer (#2386)
mt-ob Apr 22, 2025
06e0d85
[kubernetes] fix bug in container security context (#2388)
valayDave Apr 22, 2025
9ccbc6f
2.15.9 (#2389)
savingoyal Apr 22, 2025
76bbec9
support nvct (#2393)
mt-ob May 1, 2025
23c6d07
Terminate early on ENOSPC (#2392)
npow May 1, 2025
6d010c3
prep 2.15.10 release (#2394)
savingoyal May 1, 2025
682a21c
Remove url from payload (#2395)
npow May 1, 2025
d761b55
fix: remove custom emoji from Slack messages (#2396)
saikonen May 3, 2025
169aafc
fix: bump GS datastore save_bytes timeout (#2397)
saikonen May 6, 2025
fbe928d
release: 2.15.11 (#2398)
saikonen May 6, 2025
080240c
fix: threaded resolve for conda/pypi omitting exceptions (#2399)
saikonen May 9, 2025
9cdf34a
feature: add debug logging to conda_environment, micromamba and pypi …
saikonen May 9, 2025
65be48a
fix: properly close filehandles for GS and Azure uploads (#2407)
saikonen May 14, 2025
662f766
[S3] Revert default params in s3op.py (#2406)
npow May 14, 2025
153d0a7
Handle class instances in stub generator (#2408)
npow May 15, 2025
be09f01
Release 2.15.12 (#2411)
talsperre May 15, 2025
ae97f8c
[conda] conda deps pinning for azure/gcp downloaders (#2413)
valayDave May 19, 2025
0c8dbdd
fix default dict for json loads (#2414)
iamsgarg-ob May 20, 2025
9049d39
release 2.15.13 (#2416)
savingoyal May 20, 2025
4e483ef
fix: add back conda debug option that got removed. (#2419)
saikonen May 21, 2025
4144a1f
release: 2.15.14 (#2420)
saikonen May 21, 2025
3043c94
fix: skip metaflow dependencies in uv-environment (#2421)
saikonen May 21, 2025
a91d663
fix: UV-environment skip installing metaflow extensions (#2423)
saikonen May 22, 2025
158c135
drop support for python 3.5 (#2424)
mt-ob May 23, 2025
5208a34
cleaner imports (#2427)
mt-ob May 23, 2025
5288fa2
archive option in list files inside code package (#2425)
mt-ob May 23, 2025
33a2e1b
Resolve regex calls warnings (#2422)
emmanuel-ferdman May 23, 2025
f78f2b5
determine root using file (#2428)
mt-ob May 23, 2025
2d9b0bf
Add @pypi to full-stack test (#2431)
savingoyal May 28, 2025
fd8530f
Bump vite from 5.4.18 to 5.4.19 in /metaflow/plugins/cards/ui (#2432)
dependabot[bot] May 29, 2025
c8ea885
Extend the use of config_expr (#2409)
romain-intel May 29, 2025
4dd353f
update imports for py 3.7 (#2435)
savingoyal May 29, 2025
a6f4983
Revert "update imports for py 3.7" (#2436)
savingoyal May 29, 2025
318461b
Fix typos (#2440)
GameRoMan May 29, 2025
4670f77
release: 2.15.15 (#2439)
saikonen May 30, 2025
4479800
fix: boto3 client configuration handling in client_params (#2412)
yg7445 Jun 2, 2025
a7e34cb
Add retry to compute_info in Metadata service (#2433)
tlee14-upstart Jun 2, 2025
7bb99bf
move the generate_fake content_to deployer.py (#2430)
Qianh1225 Jun 4, 2025
8abe23f
S3 tests dev stack using minio (#2445)
mt-ob Jun 10, 2025
37e274c
Fix stub generator (#2447)
npow Jun 10, 2025
5bbfb0c
bump version to 2.15.16 (#2450)
talsperre Jun 10, 2025
2696364
Two fixes: runner/deployer with configs and None config (#2454)
romain-intel Jun 13, 2025
6cba5f3
feat: `kubernetes` image pull secrets (#2400)
nschmeller Jun 13, 2025
74c2cf4
bump version (#2455)
savingoyal Jun 13, 2025
342a1ad
[cards] remove dual write (#2453)
valayDave Jun 14, 2025
84c1ad8
remove references to dual writes in card datastore (#2458)
savingoyal Jun 14, 2025
79b7aa8
remove card dual writes (#2457)
savingoyal Jun 14, 2025
7cd0b3f
feature: alternate approach to environment force-rebuild (#2443)
saikonen Jun 19, 2025
cc20a0a
release: 2.15.18 (#2465)
saikonen Jun 19, 2025
69a040b
vendor imghdr into metaflow (#2467)
valayDave Jun 19, 2025
b798979
Fixup how commands show up as part of the Runner API (#2468)
romain-intel Jun 21, 2025
036a52c
[cards] support writing metadata (#2452)
valayDave Jun 23, 2025
0e3693c
Fix IMDSv2 Error (#2470)
tlee14-upstart Jun 24, 2025
dc28441
[stubs] support for TypedDicts (#2478)
valayDave Jul 9, 2025
0c32acb
Revert "[stubs] support for TypedDicts" (#2479)
savingoyal Jul 9, 2025
65fb7d4
[stubs] support for TypedDicts (#2480)
savingoyal Jul 9, 2025
9b91fea
feature: support custom exit hooks (#2446)
saikonen Jul 9, 2025
1fd4b74
feature: Introduce secrets function (#2122)
saikonen Jul 10, 2025
00eb520
prep patch release (#2481)
savingoyal Jul 10, 2025
0affc3e
fix: change get_secrets to get_secret (#2482)
saikonen Jul 10, 2025
b673d4d
prep patch release (#2483)
savingoyal Jul 10, 2025
8120701
[RfR] New packaging support (#2461)
romain-intel Jul 11, 2025
c1aa505
Revert "[RfR] New packaging support" (#2485)
saikonen Jul 11, 2025
d164253
feature: increase argo exit hook resources (#2484)
saikonen Jul 11, 2025
3516b41
release: 2.15.21 (#2486)
saikonen Jul 11, 2025
61d9bb7
New packaging support (#2487)
saikonen Jul 11, 2025
85fb152
[WIP] Feat/user decorators v2 (#2463)
romain-intel Jul 12, 2025
7e5645f
Minor release (#2488)
savingoyal Jul 12, 2025
3c85e0d
fix: uv bootstrapping (#2491)
saikonen Jul 15, 2025
5dacb42
Fix/packaging mopup (#2490)
romain-intel Jul 15, 2025
68df8e4
release: 2.16.1 (#2492)
saikonen Jul 15, 2025
f33c948
retry 500s too for service (#2493)
savingoyal Jul 15, 2025
51a8d3f
fix: kubernetes imagePullSecrets support for argo workflows (#2494)
saikonen Jul 15, 2025
a583a0c
patch release (#2495)
savingoyal Jul 15, 2025
79e4b9a
fix: regression with default notifications on argo workflows (#2496)
saikonen Jul 16, 2025
2c702e1
release: 2.16.3 (#2497)
saikonen Jul 16, 2025
608a238
[bug fix] fix subtle bug from netflix/metaflow#2463 (#2498)
valayDave Jul 17, 2025
f56211e
patch release (#2500)
savingoyal Jul 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-20.04, macos-latest]
ver: ['3.5', '3.6', '3.7', '3.8', '3.9', '3.10', '3.11',]
ver: ['3.5', '3.6', '3.7', '3.8', '3.9', '3.10', '3.11', '3.12']

steps:
- uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
Expand Down
67 changes: 43 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,49 +2,68 @@

# Metaflow

Metaflow is a human-friendly Python/R library that helps scientists and engineers build and manage real-life data science projects. Metaflow was originally developed at Netflix to boost productivity of data scientists who work on a wide variety of projects from classical statistics to state-of-the-art deep learning.
Metaflow is a human-friendly library that helps scientists and engineers build and manage real-life data science projects. Metaflow was [originally developed at Netflix](https://netflixtechblog.com/open-sourcing-metaflow-a-human-centric-framework-for-data-science-fa72e04a5d9) to boost productivity of data scientists who work on a wide variety of projects from classical statistics to state-of-the-art deep learning.

For more information, see [Metaflow's website](https://metaflow.org) and [documentation](https://docs.metaflow.org).

## Getting Started
## From prototype to production (and back)

Getting up and running with Metaflow is easy.
Metaflow provides a simple, friendly API that covers foundational needs of ML, AI, and data science projects:
<img src="./docs/prototype-to-prod.png" width="800px">

### Python
Install metaflow from [pypi](https://pypi.org/project/metaflow/):
1. [Rapid local prototyping](https://docs.metaflow.org/metaflow/basics), [support for notebooks](https://docs.metaflow.org/metaflow/visualizing-results), and [built-in experiment tracking and versioning](https://docs.metaflow.org/metaflow/client).
2. [Horizontal and vertical scalability to the cloud](https://docs.metaflow.org/scaling/remote-tasks/introduction), utilizing both CPUs and GPUs, and [fast data access](https://docs.metaflow.org/scaling/data).
3. [Managing dependencies](https://docs.metaflow.org/scaling/dependencies) and [one-click deployments to highly available production orchestrators](https://docs.metaflow.org/production/introduction).


## Getting started

Getting up and running is easy. If you don't know where to start, [Metaflow sandbox](https://outerbounds.com/sandbox) will have you running and exploring Metaflow in seconds.

### Installing Metaflow in your Python environment

To install Metaflow in your local environment, you can install from [PyPi](https://pypi.org/project/metaflow/):

```sh
pip install metaflow
```

and access tutorials by typing:
Alternatively, you can also install from [conda-forge](https://anaconda.org/conda-forge/metaflow):

```sh
metaflow tutorials pull
conda install -c conda-forge metaflow
```
If you are eager to try out Metaflow in practice, you can start with the [tutorial](https://docs.metaflow.org/getting-started/tutorials). After the tutorial, you can learn more about how Metaflow works [here](https://docs.metaflow.org/metaflow/basics).

### R
### Deploying infrastructure for Metaflow in your cloud
<img src="./docs/multicloud.png" width="800px">

Install Metaflow from [github](https://github.com/Netflix/metaflow/tree/master/R):

```R
devtools::install_github("Netflix/metaflow", subdir="R")
metaflow::install()
```
While you can get started with Metaflow easily on your laptop, the main benefits of Metaflow lie in its ability to [scale out to external compute clusters](https://docs.metaflow.org/scaling/remote-tasks/introduction)
and to [deploy to production-grade workflow orchestrators](https://docs.metaflow.org/production/introduction). To benefit from these features, follow this [guide](https://outerbounds.com/engineering/welcome/) to
configure Metaflow and the infrastructure behind it appropriately.

and access tutorials by typing:
## [Resources](https://docs.metaflow.org/introduction/metaflow-resources)

```R
metaflow::pull_tutorials()
```
### [Slack Community](http://slack.outerbounds.co/)
An active [community](http://slack.outerbounds.co/) of thousands of data scientists and ML engineers discussing the ins-and-outs of applied machine learning.

## Get in Touch
There are several ways to get in touch with us:
### [Tutorials](https://outerbounds.com/docs/tutorials-index/)
- [Introduction to Metaflow](https://outerbounds.com/docs/intro-tutorial-overview/)
- [Natural Language Processing with Metaflow](https://outerbounds.com/docs/nlp-tutorial-overview/)
- [Computer Vision with Metaflow](https://outerbounds.com/docs/cv-tutorial-overview/)
- [Recommender Systems with Metaflow](https://outerbounds.com/docs/recsys-tutorial-overview/)
- And more advanced content [here](https://outerbounds.com/docs/tutorials-index/)

* Open an issue at: https://github.com/Netflix/metaflow
* Email us at: [email protected]
* Chat with us on: http://chat.metaflow.org
### [Generative AI and LLM use cases](https://outerbounds.com/blog/?category=Foundation%20Models)
- [Infrastructure Stack for Large Language Models](https://outerbounds.com/blog/llm-infrastructure-stack/)
- [Parallelizing Stable Diffusion for Production Use Cases](https://outerbounds.com/blog/parallelizing-stable-diffusion-production-use-cases/)
- [Whisper with Metaflow on Kubernetes](https://outerbounds.com/blog/whisper-kubernetes/)
- [Training a Large Language Model With Metaflow, Featuring Dolly](https://outerbounds.com/blog/train-dolly-metaflow/)

## Contributing
## Get in touch
There are several ways to get in touch with us:
- [Slack Community](http://slack.outerbounds.co/)
- [Github Issues](https://github.com/Netflix/metaflow/issues)

## Contributing
We welcome contributions to Metaflow. Please see our [contribution guide](https://docs.metaflow.org/introduction/contributing-to-metaflow) for more details.
11 changes: 11 additions & 0 deletions docs/metaflow.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/multicloud.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/prototype-to-prod.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
25 changes: 23 additions & 2 deletions metaflow/R.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
import imp
import sys
from importlib import util as imp_util, machinery as imp_machinery
from tempfile import NamedTemporaryFile

from .util import to_bytes
Expand Down Expand Up @@ -70,6 +71,26 @@ def working_dir():
return None


def load_module_from_path(module_name: str, path: str):
"""
Loads a module from a given path

Parameters
----------
module_name: str
Name to assign for the loaded module. Usable for importing after loading.
path: str
path to the file to be loaded
"""
loader = imp_machinery.SourceFileLoader(module_name, path)
spec = imp_util.spec_from_loader(loader.name, loader)
module = imp_util.module_from_spec(spec)
loader.exec_module(module)
# Required in order to be able to import the module by name later.
sys.modules[module_name] = module
return module


def run(
flow_script,
r_functions,
Expand Down Expand Up @@ -100,7 +121,7 @@ def run(
full_cmdline[0] = os.path.basename(full_cmdline[0])
with NamedTemporaryFile(prefix="metaflowR.", delete=False) as tmp:
tmp.write(to_bytes(flow_script))
module = imp.load_source("metaflowR", tmp.name)
module = load_module_from_path("metaflowR", tmp.name)
flow = module.FLOW(use_cli=False)

from . import exception
Expand Down
Loading