![Page 1: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/1.jpg)
1
Novel Use of Perforce for Software Auto-updates and File Transfer
Xavier Galvez Senior Engineer
![Page 2: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/2.jpg)
2
DEV
DEV’S COMPUTER
![Page 3: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/3.jpg)
3
DEV
DEV’S COMPUTER
![Page 4: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/4.jpg)
4
DEV
DEV’S COMPUTER
BUILD FARM
![Page 5: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/5.jpg)
5
DEV
DEV’S COMPUTER
BUILD FARM
![Page 6: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/6.jpg)
6
Pre-submit Developer Build (PSDB)
1) Takes a code change before check-in
![Page 7: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/7.jpg)
7
Pre-submit Developer Build (PSDB)
1) Takes a code change before check-in 2) Overlays changes on the last-known-good
![Page 8: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/8.jpg)
8
Pre-submit Developer Build (PSDB)
1) Takes a code change before check-in 2) Overlays changes on the last-known-good 3) Performs the build
![Page 9: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/9.jpg)
9
Pre-submit Developer Build (PSDB)
1) Takes a code change before check-in 2) Overlays changes on the last-known-good 3) Performs the build 4) Runs tests and generates a report
![Page 10: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/10.jpg)
10
DEV
DEV’S COMPUTER
BUILD FARM
PSDB
![Page 11: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/11.jpg)
11
DEV
DEV’S COMPUTER
BUILD FARM
PSDB
![Page 12: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/12.jpg)
12
DEV
DEV’S COMPUTER
BUILD FARM
PSDB
![Page 13: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/13.jpg)
13
DEV
DEV’S COMPUTER
BUILD FARM
PSDB
ACC BUILD FARM
![Page 14: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/14.jpg)
14
DEV
DEV’S COMPUTER
BUILD FARM
PSDB
ACC BUILD FARM AUTOMATED TESTS
![Page 15: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/15.jpg)
15
DEV
DEV’S COMPUTER
BUILD FARM
PSDB
ACC BUILD FARM AUTOMATED TESTS
![Page 16: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/16.jpg)
16
DEV
DEV’S COMPUTER
BUILD FARM
PSDB
ACC BUILD FARM AUTOMATED TESTS
![Page 17: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/17.jpg)
17
DEV’S COMPUTER
PSDB
![Page 18: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/18.jpg)
18
First Attempt: Two Codebases
§ Perforce vs. SVN
![Page 19: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/19.jpg)
19
First Attempt: Two Codebases
§ Perforce vs. SVN § Windows® file share
![Page 20: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/20.jpg)
20
First Attempt: Two Codebases
§ Perforce vs. SVN § Windows® file share § Windows: Robocopy
![Page 21: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/21.jpg)
21
First Attempt: Two Codebases
§ Perforce vs. SVN § Windows® file share § Windows: Robocopy § Linux: rsync + headaches
![Page 22: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/22.jpg)
22
First Attempt: Two Codebases
§ Perforce vs. SVN § Windows® file share § Windows: Robocopy § Linux: rsync + headaches § No FTP or SCP
![Page 23: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/23.jpg)
23
Keep It Super Simple
![Page 24: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/24.jpg)
24
Keep It Super Simple
§ Quick, easy installation
![Page 25: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/25.jpg)
25
Keep It Super Simple
§ Quick, easy installation § Minimize number of actions
![Page 26: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/26.jpg)
26
Keep It Super Simple
§ Quick, easy installation § Minimize number of actions § Clean visual validation
![Page 27: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/27.jpg)
27
Keep It Super Simple
§ Quick, easy installation § Minimize number of actions § Clean visual validation § Verbose yet readable log
![Page 28: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/28.jpg)
28
Keep It Super Simple
§ Quick, easy installation § Minimize number of actions § Clean visual validation § Verbose yet readable log § Single codebase
![Page 29: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/29.jpg)
29
Using P4 for File Transfers
![Page 30: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/30.jpg)
30
Uploading Files
1) Create new workspace on pre-submit depot
![Page 31: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/31.jpg)
31
“Allwrite” is All Right
![Page 32: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/32.jpg)
32
Uploading Files
1) Create new workspace on pre-submit depot 2) Create pending changelist and populate
![Page 33: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/33.jpg)
33
Uploading Files
1) Create new workspace on pre-submit depot 2) Create pending changelist and populate 3) Submit pending changelist and trigger PSDB
![Page 34: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/34.jpg)
34
Benefits
§ Single codebase
![Page 35: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/35.jpg)
35
Benefits
§ Single codebase § Write-once/run-on-all OSes
![Page 36: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/36.jpg)
36
Benefits
§ Single codebase § Write-once/run-on-all OSes § No need for separate database
![Page 37: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/37.jpg)
37
Benefits
§ Single codebase § Write-once/run-on-all OSes § No need for separate database § Leverages an existing framework
![Page 38: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/38.jpg)
38
Benefits
§ Single codebase § Write-once/run-on-all OSes § No need for separate database § Leverages an existing framework § Eliminate race conditions
![Page 39: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/39.jpg)
39
Shortcomings
§ No un-numbered default pending changelists
![Page 40: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/40.jpg)
40
Shortcomings
§ No un-numbered default pending changelists § Pre-submit depot fills quickly
![Page 41: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/41.jpg)
41
Shortcomings
§ No un-numbered default pending changelists § Pre-submit depot fills quickly § No pre-submit for virtual integrations
![Page 42: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/42.jpg)
42
Shortcomings
§ No un-numbered default pending changelists § Pre-submit depot fills quickly § No pre-submit for virtual integrations § Perforce is overkill for file server
![Page 43: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/43.jpg)
43
Shortcomings
§ No un-numbered default pending changelists § Pre-submit depot fills quickly § No pre-submit for virtual integrations § Perforce is overkill for file server § Local client is needed
![Page 44: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/44.jpg)
44
Using P4 for Software Auto-updates
![Page 45: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/45.jpg)
45
Why Auto-update?
§ Users get the newest features and fixes
![Page 46: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/46.jpg)
46
Why Auto-update?
§ Users get the newest features and fixes § Deployment is overhead
§ Packaging, announcing, enforcing
![Page 47: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/47.jpg)
47
Why Auto-update?
§ Users get the newest features and fixes § Deployment is overhead
§ Packaging, announcing, enforcing
§ Not all solutions are like web apps
![Page 48: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/48.jpg)
48
Why Auto-update?
§ Users get the newest features and fixes § Deployment is overhead
§ Packaging, announcing, enforcing
§ Not all solutions are like web apps § Provide seamless experience for the user
![Page 49: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/49.jpg)
49
Components Needed For Auto-update
![Page 50: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/50.jpg)
50
Components Needed For Auto-update
1) Centralized version-control system
![Page 51: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/51.jpg)
51
Components Needed For Auto-update
1) Centralized version-control system 2) The “caller”
![Page 52: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/52.jpg)
52
Components Needed For Auto-update
1) Centralized version-control system 2) The “caller” 3) The “client”
![Page 53: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/53.jpg)
53
DEV DEV’S
COMPUTER
caller
client v1
![Page 54: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/54.jpg)
54
DEV DEV’S
COMPUTER
caller
client v1 client v1
![Page 55: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/55.jpg)
55
DEV DEV’S
COMPUTER
caller
client v1 client v1
![Page 56: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/56.jpg)
56
DEV DEV’S
COMPUTER
client v2
AUTHOR
caller
client v1
![Page 57: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/57.jpg)
57
DEV DEV’S
COMPUTER
client v2
caller
client v1
![Page 58: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/58.jpg)
58
DEV DEV’S
COMPUTER
client v2
caller
client v2
![Page 59: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/59.jpg)
59
Benefits
§ Leverages an existing Perforce set-up
![Page 60: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/60.jpg)
60
Benefits
§ Leverages an existing Perforce set-up § Latest “client” is always used
![Page 61: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/61.jpg)
61
Benefits
§ Leverages an existing Perforce set-up § Latest “client” is always used § Tracking
![Page 62: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/62.jpg)
62
Benefits
§ Leverages an existing Perforce set-up § Latest “client” is always used § Tracking § Improved quality of service
![Page 63: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/63.jpg)
63
Shortcomings
§ Full package is not updated
![Page 64: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/64.jpg)
64
Shortcomings
§ Full package is not updated § Perforce calls are done via shell
![Page 65: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/65.jpg)
65
Putting It All Together
![Page 66: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/66.jpg)
66
Windows Installer
![Page 67: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/67.jpg)
67
Adding to P4V
![Page 68: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/68.jpg)
68
Right-click on Pending Changelist
![Page 69: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/69.jpg)
69
Right-click on Pending Changelist
![Page 70: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/70.jpg)
70
Listing Modified Files
![Page 71: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/71.jpg)
71
Listing Modified Files
![Page 72: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/72.jpg)
72
Visual Validation
![Page 73: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/73.jpg)
73
In Conclusion Novel Use of Perforce for Software Auto-updates and File Transfer in a Multi-OS Environment
![Page 74: [AMD] Novel Use of Perforce for Software Auto-updates and File Transfer](https://reader033.vdocuments.net/reader033/viewer/2022052523/555d704fd8b42a0b778b516f/html5/thumbnails/74.jpg)
74
Questions?